![](/img/trans.png)
[英]how to check if a php variable containing an ip address, lies in the range of two ip addresses in inet_aton format
[英]How do i check if a php variable($stat_ip) containing an ip address(inet_aton) lies in the range of two ip's(inet_aton format)
//变量$ stat_ip位于表Hasoffers中,如果它位于列值network_start_ip和network_end_ip之间,它将位于另一个名为Blacklisted的表中。我需要编写一个函数来帮助我通过访问所有三。
<?php
include('adodb/adodb.inc.php');
mysql_connect("*****","***","***");
mysql_select_db("********");
$pl=mysql_query("SELECT stat_ip,stat_session_ip FROM Hasoffers");
$count=mysql_num_rows($pl)
while($row=mysql_fetch_array($pl))
{
$stat_ip=$row['stat_ip'];
echo fn($stat_ip)."<br>";
}
$bip=mysql_query("SELECT inet_aton(network_start_ip),inet_aton(network_end_ip) FROM blacklisted");
while($array=mysql_fetch_array($bip))
{
$start_ip=$array['network_Start_ip'];
$end_ip = $array['netwrok_end_ip'];
}
function fn($stat_ip)
{
$result =mysql_query('SELECT stat_ip FROM Hasoffers where ($stat_ip BETWEEN INET_ATON(network_start_ip) AND INET_ATON(network_end_ip)');
}
?>php
你可以在之间使用
SELECT inet_aton(network_start_ip),inet_aton(network_end_ip)
FROM blacklisted
WHERE your_ip_column BETWEEN INET_ATON(network_start_ip) AND INET_ATON(network_end_ip)
如果您在单个选择中同时需要查询,则可以在两者之间使用左连接
SELECT a.stat_ip
FROM Hasoffers as a
LEFT JOIN blacklisted on as b on inet_aton(a.stat_ip)
between INET_ATON(b.network_start_ip) AND INET_ATON(b.network_end_ip)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.