From ca15f46d0177f0e3d5e25bc8e4c226c87008771b Mon Sep 17 00:00:00 2001 From: Kolby Moroz Liebl <31669092+KolbyML@users.noreply.github.com> Date: Sat, 1 Feb 2025 12:27:22 -0700 Subject: [PATCH] fix: stop `generate_random_remote_enr` from generating multicast ip's (#1657) --- crates/ethportal-api/src/types/enr.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/crates/ethportal-api/src/types/enr.rs b/crates/ethportal-api/src/types/enr.rs index 60ea3ead1..98d0f3efe 100644 --- a/crates/ethportal-api/src/types/enr.rs +++ b/crates/ethportal-api/src/types/enr.rs @@ -90,9 +90,11 @@ impl ssz::Encode for SszEnr { pub fn generate_random_remote_enr() -> (CombinedKey, Enr) { let key = CombinedKey::generate_secp256k1(); - let mut rng = rand::thread_rng(); - let ip = Ipv4Addr::from(rng.gen::()); + + // Generate an IP between 1.0.0.0 and 223.255.255.255 + // We don't want to generate a multicast address (224.0.0.0 - 239.255.255.255) + let ip = Ipv4Addr::from(rng.gen_range(0x1000000..=0xDFFFFFFF)); // 0xDFFFFFFF == 223.255.255.255 let enr = Discv5Enr::builder() .ip(ip.into())