Как проверить, находится ли переменная php ($ stat_ip), содержащая IP-адрес (inet_aton), в диапазоне двух IP-адресов (формат inet_aton)

// переменная $ 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

1

Решение

Вы можете использовать между

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)
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector