2014-01-09 96 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'