簡體   English   中英

我如何檢查包含ip地址(inet_aton)的php變量($ stat_ip)是否位於兩個ip的范圍內(inet_aton格式)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM