2014-01-09 95 views

回答

31
>>> 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' 

注意这可能generarte IP地址就像0.0.0.0255.255.255.255

+0

非常感谢您! – changzhi

+0

如果我想获得IP地址V6,我该怎么办?谢谢 ! – changzhi

22

如果你只是想要一个字符串:

import random 

ip = ".".join(map(str, (random.randint(0, 255) 
         for _ in range(4)))) 
+0

不错的一个jonsharpe。 – AJN

+5

你可以把地图拿出来,只需在范围(4)中为_加入(str(randint(0,255)))'' – Joohwan

2
In [123]: '.'.join('%s'%random.randint(0, 255) for i in range(4)) 
Out[123]: '45.204.56.200' 

In [124]: '.'.join('%s'%random.randint(0, 255) for i in range(4)) 
Out[124]: '7.112.222.205' 
0

这可能是太明显了,但如果你的范围内,需要随机IP地址,你可以使用这个:

import random 

for x in xrange(1,100): 
    ip = "192.168." 
    ip += ".".join(map(str, (random.randint(0, 255) 
          for _ in range(2)))) 

    print ip 
3

的另一种方法生成的IP地址的形式随机字符串为:

>>> ip = '{}.{}.{}.{}'.format(*__import__('random').sample(range(0,255),4)) 
>>> ip 
'45.162.105.102'