2014-01-09 6 views

Antwort

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' 

HINWEIS Dies könnte IPs wie 0.0.0.0, 255.255.255.255 generarte.

+0

Vielen Dank! – changzhi

+0

Wenn ich eine IP-Adresse V6 bekommen möchte, was soll ich tun? Vielen Dank ! – changzhi

22

Wenn Sie nur einen String:

import random 

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

Nice one jonsharpe. – AJN

+5

Sie können die Karte herausnehmen und einfach "". ". Join (str (randint (0, 255)) für _ im Bereich (4))' – 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

Es kann zu offensichtlich sein, aber wenn Sie in einem Bereich zufällige IP-Adressen benötigen, können Sie verwenden diese:

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

Eine alternative Möglichkeit, eine zufällige Zeichenfolge in Form einer IP-Adresse zu erzeugen, ist:

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