首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生成随机ips

生成随机ips
EN

Stack Overflow用户
提问于 2020-08-22 09:49:15
回答 4查看 1.2K关注 0票数 0

我对python非常陌生,这可能是一个简单的分析程序,但是如何使用ipaddress module从0.0.0.0/0生成随机的ips。

main.py

代码语言:javascript
复制
import ipaddress

def ipv4():
    net4 = ipaddress.ip_network('0.0.0.0/0')
    for ips in net4:

ipv4()

电流输出

代码语言:javascript
复制
0.0.149.149
0.0.149.150
0.0.149.151
0.0.149.152

预期输出

代码语言:javascript
复制
193.189.190.7
154.195.199.61
199.231.163.232
179.112.190.133
188.120.233.146
EN

回答 4

Stack Overflow用户

发布于 2020-08-22 10:07:46

下面呢?

代码语言:javascript
复制
import ipaddress
import random
import sys

print(str(ipaddress.IPv4Address(random.randint(0,2 ** 32))))
票数 2
EN

Stack Overflow用户

发布于 2020-08-22 10:22:33

一个可能的解决方案:

代码语言:javascript
复制
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)
    )

示例:

代码语言:javascript
复制
    >>> 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 是可选的,则可以使用该。

代码语言:javascript
复制
>>> 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,把它放在这样的循环中,

代码语言:javascript
复制
for _ in range(10):
    print(socket.inet_ntoa(struct.pack('>I', random.randint(1, 0xffffffff))))

输出:

代码语言:javascript
复制
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
票数 0
EN

Stack Overflow用户

发布于 2020-08-22 11:48:19

此代码用于C类IP地址:

代码语言:javascript
复制
#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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63534813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档