我对python非常陌生,这可能是一个简单的分析程序,但是如何使用ipaddress module从0.0.0.0/0生成随机的ips。
main.py
import ipaddress
def ipv4():
net4 = ipaddress.ip_network('0.0.0.0/0')
for ips in net4:
ipv4()电流输出
0.0.149.149
0.0.149.150
0.0.149.151
0.0.149.152预期输出
193.189.190.7
154.195.199.61
199.231.163.232
179.112.190.133
188.120.233.146发布于 2020-08-22 10:07:46
下面呢?
import ipaddress
import random
import sys
print(str(ipaddress.IPv4Address(random.randint(0,2 ** 32))))发布于 2020-08-22 10:22:33
一个可能的解决方案:
import random
MAX_IPV4 = ipaddress.IPv4Address._ALL_ONES # 2 ** 32 - 1
MAX_IPV6 = ipaddress.IPv6Address._ALL_ONES # 2 ** 128 - 1
def random_ipv4():
return ipaddress.IPv4Address._string_from_ip_int(
random.randint(0, MAX_IPV4)
)
def random_ipv6():
return ipaddress.IPv6Address._string_from_ip_int(
random.randint(0, MAX_IPV6)
)示例:
>>> random.seed(444)
>>> random_ipv4()
'79.19.184.109'
>>> random_ipv4()
'3.99.136.189'
>>> random_ipv4()
'124.4.25.53'
>>> random_ipv6()
'4fb7:270d:8ba9:c1ed:7124:317:e6be:81f2'
>>> random_ipv6()
'fe02:b348:9465:dc65:6998:6627:1300:29c9'
>>> random_ipv6()
'74a:dd88:1ff2:bfe3:1f3:81ad:debd:db88'如果ipaddress 是可选的,则可以使用该。
>>> import random
>>> import socket
>>> import struct
>>> socket.inet_ntoa(struct.pack('>I', random.randint(1, 0xffffffff)))
'197.38.59.143'
>>> socket.inet_ntoa(struct.pack('>I', random.randint(1, 0xffffffff)))
'228.237.175.64'如果你想要多个it,把它放在这样的循环中,
for _ in range(10):
print(socket.inet_ntoa(struct.pack('>I', random.randint(1, 0xffffffff))))输出:
151.166.184.41
237.59.227.33
249.179.144.26
248.151.116.150
94.186.44.162
251.238.134.106
5.239.51.182
198.1.81.192
24.116.237.239
187.8.43.55发布于 2020-08-22 11:48:19
此代码用于C类IP地址:
#Class C IP address range 192.168.0.0 - 192.168.255.255
import ipaddress
import random
def ipv4(no_ips):
for i in range(1,no_ips):
netwrk_id = random.choice(range(0,255))
host_id = random.choice(range(0,255))
ip_address_gen = f'192.i68.{netwrk_id}.{host_id}'
print(ip_address_gen)
ipv4(20) #this generates 20 Class C IP addresses在这里,我导入了random模块,并使用它在0和网络ID /主机ID限制(即255)之间生成随机整数。然后将192.168(如类C地址的情况)添加到生成的值中。在调用ipv4函数时,只需传递要生成的as和参数的IP地址数。您可以扩展B类IP地址的代码,在这种情况下,您将生成三组不同的整数,因为B类范围如下所示: 172.16.0.0 - 172.31.255.255
https://stackoverflow.com/questions/63534813
复制相似问题