IP 範囲のデータベースがあり、以下のコードを使用して範囲を個々の IP アドレスに分割しています。これは、210937 レコードに到達するまで正常に機能し、コードは IP 範囲の分割を停止し、0.0.0.0 の挿入を開始します。
いくつかの IP アドレスを削除しようとしましたが、IP アドレスが異なっていても同じポイントで停止します。
for ($ip = ip2long($ip1); $ip<=ip2long($ip2); $ip++)
{
$lip = long2ip($ip);
任意の提案をいただければ幸いです。
わかりましたので、これが完全なコードから db 接続を差し引いたものです。
$query1 = "SELECT * FROM masteriplist";
$result = mysql_query($query1);
while($row = mysql_fetch_array($result))
{
$ipe = $row['ip_end_range'];
$ips = $row['ip_start_range'];
$ip1 = "$ips";
$ip2 = "$ipe";
for ($ip = ip2long($ip1); $ip<=ip2long($ip2); $ip++)
{
$lip = long2ip($ip);
mysql_query("INSERT INTO ip_master (ip) VALUES ('$lip')")
or die(mysql_error());
}
}
デバッグコードは次を返しました
array(24) {
["id"]=> string(2) "50"
["ip_address"]=> string(12) "85.119.25.27"
["ip_start_range"]=> string(0) ""
["ip_end_range"]=> string(0) ""
...
}