我想生成一个随机的IP地址。
答案 0 :(得分:36)
long2ip(rand(0, "4294967295"))
答案 1 :(得分:18)
检查mt_rand func。
你可能想要运行它:
<?php
$randIP = "".mt_rand(0,255).".".mt_rand(0,255).".".mt_rand(0,255).".".mt_rand(0,255);
?>
答案 2 :(得分:5)
$ip = long2ip(mt_rand());
这种方式稍微可读。
答案 3 :(得分:4)
根据这里的一些回答,我决定添加答案来纠正错误 ......
mt_rand(int $min, int $max);
部分样本使用此功能,最大值 4294967295 。但是这个函数只支持 2147483647 的最大值,实际上只有一半。传递更高的数字将返回 false 。使用此函数whitout传递任何东西也只会提供所需值的一半。所以
long2ip(mt_rand());
将返回最大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
,但是获得较低IP的机会不再那么好了。
答案 4 :(得分:1)
如果您有任何:
,您还可以从自己的网络服务器日志中获取有效IP池cat / var / log / apache2 / access_log | cut -d'' - f1 | egrep -v'[a-z]'| sort | uniq&gt; lotsofip.txt
然后在php:
$ips = file('lotsofip.txt');
echo $ips[array_rand($ips)];
答案 5 :(得分:-1)
$ip = intval(rand()%255).'.'.intval(rand()%255).'.'.intval(rand()%255).'.'.intval(rand()%255);