Maison  >  Article  >  développement back-end  >  Déterminer si une adresse IP existe dans la plage en php

Déterminer si une adresse IP existe dans la plage en php

不言
不言original
2018-04-13 10:07:543218parcourir

Le contenu de cet article explique comment déterminer si une adresse IP est dans la plage en PHP. Les amis dans le besoin peuvent s'y référer

J'ai vu de nombreux types d'adresses IP sur Internet. les méthodes incluent les méthodes régulières et l'interception de chaînes. J'ai beaucoup essayé et je pense que ce n'est pas très fiable. Premièrement, il est un peu réticent à renoncer à la précision. Deuxièmement, cela nuit trop aux performances et est compliqué. Après avoir recherché de nombreuses informations, j'ai trouvé une méthode simple pour déterminer la plage d'adresses IP avec de meilleures performances. Je vais la noter ici.

Quant à la base de données d'adresses IP, elle est vraiment bien : http://www.cz88.net/

Vous pouvez également utiliser l'interface en ligne, mais il y a des problèmes. Vous ne pouvez pas utiliser les boucles for pour y accéder fréquemment, sinon elles seront bloquées par l'interface

Base de données d'adresses IP Taobao : http://ip.taobao.com/service/getIpInfo.php?ip=Fill in IP here Adresse


D'accord, en fait, c'est très simple de véritablement déterminer la plage d'adresses IP Cela peut se faire en une seule ligne de code. en regardant le cas que j'ai écrit ci-dessous :





[php] afficher la copie brute

//案例:判断192.168.1.127是否在 (192.168.1.1--192.168.1.255)的范围里面  
  
$ip_start = get_iplong('192.168.1.1'); //起始ip  
$ip_end = get_iplong('192.168.1.255');//至ip  
$ip = get_iplong('192.168.1.127');//判断的ip  
//可以这样简单判断  
if($ip>=$ip_start && $ip <=$ip_end){  
    echo &#39;IP在此范围内&#39;;  
}else{  
    echo &#39;IP不在此范围&#39;;  
}  
/** 
 * 将ip地址转换成int型 
 * @param $ip  ip地址 
 * @return number 返回数值 
 */  
function get_iplong($ip){  
    //bindec(decbin(ip2long(&#39;这里填ip地址&#39;)));  
    //ip2long();的意思是将IP地址转换成整型 ,  
    //之所以要decbin和bindec一下是为了防止IP数值过大int型存储不了出现负数。  
    return bindec(decbin(ip2long($ip)));  
}


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Apprentissage de base sur phpArticle suivant:Apprentissage de base sur php