В Python, что мне делать, если я хочу создать случайную строку в виде IP-адреса?
Например: "10.0.1.1"
, "10.0.3.14"
, "172.23.35.1"
и т.д.
Может ли кто-нибудь помочь мне?
В Python, что мне делать, если я хочу создать случайную строку в виде IP-адреса?
Например: "10.0.1.1"
, "10.0.3.14"
, "172.23.35.1"
и т.д.
Может ли кто-нибудь помочь мне?
>>> 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'
ПРИМЕЧАНИЕ. Это может генерировать IP-адреса, такие как 0.0.0.0
, 255.255.255.255
.
Если вы просто хотите строку:
import random
ip = ".".join(map(str, (random.randint(0, 255)
for _ in range(4))))
from faker import Faker
faker = Faker()
ip_addr = faker.ipv4()
Ссылка: Fake-Apache-Log-Generator
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'
Альтернативный способ генерации случайной строки в виде IP-адреса:
>>> ip = '{}.{}.{}.{}'.format(*__import__('random').sample(range(0,255),4))
>>> ip
'45.162.105.102'
https://faker.readthedocs.io/en/latest/providers/faker.providers.internet.html
import faker
fake = Factory.create()
ip_addr = fake.ipv4(network=False)
lib имеет множество других полезных опций для подделки данных.
Это может быть слишком очевидно, но если вам нужны случайные 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
У вас также есть модуль Python ipaddress
, более полезный для создания, управления и работы с адресами и сетями IPv4 и IPv6:
import ipaddress
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'