From 471332a100b2be47a8833a4df3fb0f6cef3fac3e Mon Sep 17 00:00:00 2001 From: markus Date: Thu, 7 Dec 2023 22:13:29 +0100 Subject: [PATCH] Add safeIpv4 and safeIpv6 --- src/Provider/Internet.php | 26 ++++++++++++++++++++++++++ test/Provider/InternetTest.php | 10 ++++++++++ 2 files changed, 36 insertions(+) diff --git a/src/Provider/Internet.php b/src/Provider/Internet.php index 122d9c0c15..b351bc81ac 100644 --- a/src/Provider/Internet.php +++ b/src/Provider/Internet.php @@ -254,6 +254,32 @@ public static function localIpv4() return long2ip(static::numberBetween(ip2long($ipBlock[0]), ip2long($ipBlock[1]))); } + /** + * @example '192.0.2.1' + * + * @return string + */ + public static function safeIpv4() + { + return '192.0.2.' . static::numberBetween(0, 255); + } + + /** + * @example '2001:db8:ffff:ffff:ffff:ffff:ffff:ffff' + * + * @return string + */ + public static function safeIpv6() + { + $res = ['2001', 'db8']; + + for ($i = 0; $i < 6; ++$i) { + $res[] = dechex(self::numberBetween(0, 65535)); + } + + return implode(':', $res); + } + /** * @example '32:F1:39:2F:D6:18' * diff --git a/test/Provider/InternetTest.php b/test/Provider/InternetTest.php index 7c9cd3553c..4f6921f7fa 100644 --- a/test/Provider/InternetTest.php +++ b/test/Provider/InternetTest.php @@ -125,6 +125,16 @@ public function testIpv6(): void self::assertNotFalse(filter_var($this->faker->ipv6(), FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)); } + public function testSafeIpv4(): void + { + self::assertNotFalse(filter_var($this->faker->safeIpv4(), FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)); + } + + public function testSafeIpv6(): void + { + self::assertNotFalse(filter_var($this->faker->safeIpv6(), FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)); + } + public function testMacAddress(): void { self::assertNotFalse(filter_var($this->faker->macAddress(), FILTER_VALIDATE_MAC));