Я хотел бы создать случайный IP-адрес.
Создание случайного IP-адреса с помощью PHP
Ответ 1
Проверьте mt_rand func.
Вероятно, вы захотите запустить это:
<?php
$randIP = "".mt_rand(0,255).".".mt_rand(0,255).".".mt_rand(0,255).".".mt_rand(0,255);
?>
Ответ 2
long2ip(rand(0, "4294967295"))
Ответ 3
$ip = long2ip(mt_rand());
Этот способ немного читабельнее.
Ответ 4
В соответствии с некоторыми ответами здесь я решил добавить ответ, чтобы исправить некоторые ошибки, которые были сделаны...
mt_rand(int $min, int $max);
Некоторые образцы использовали эту функцию с максимальными значениями 4294967295. Но эта функция поддерживает только максимальное значение 2147483647, что на самом деле половина. Передача большего числа вернет false. Использование этой функции без передачи чего-либо также даст только половину необходимого значения. Итак,
long2ip(mt_rand());
вернет max ip из 127.255.255.255
Чтобы иметь полный диапазон, который вам нужен, например:
long2ip(mt_rand()+mt_rand());
Но даже в этом примере вы получите максимум 255.255.255.254
. Итак, чтобы иметь полный диапазон, вам понадобится третий mt_rand()
.
Правильный способ получить полный диапазон в коротком ручном коде:
$ip = long2ip(mt_rand()+mt_rand()+mt_rand(0,1));
Остерегайтесь использовать +, а не *. Поскольку max value
* max value
возвращает 255.255.255.255
как expacted, но шанс получить более низкий ip больше не так хорош.
Ответ 5
Вы также можете получить пул действительных IP-адресов из ваших собственных журналов веб-сервера, если у вас есть:
cat/var/log/apache2/access_log | cut -d '' -f1 | egrep -v '[a-z]' | sort | uniq > lotsofip.txt
а затем в php:
$ips = file('lotsofip.txt');
echo $ips[array_rand($ips)];
Ответ 6
$ip = intval(rand()%255).'.'.intval(rand()%255).'.'.intval(rand()%255).'.'.intval(rand()%255);