[PHP] Détecter un VPN, Proxy, VPS ou Serveur dédié à partir d’une adresse IP
[PHP] Détecter un VPN, un Proxy, un VPS ou un Serveur dédié à partir d’une adresse IP
Rédigé par admin
1 commentaire
Depuis longtemps je recherchais un truc fiable sur Google pour détecter l’IP d’un visiteur en PHP savoir il is utilise utilise ip résidence , hébergeur serveur dédié VPS ( forcément détecte VPN , PROXY BNC ) .
J’ai donc trouvé 6 bons détecteurs de VPN (ce sont des APIs) :
Sommaire
- API IPHub
- API GetIPintel
- API Blackbox
- API IPHunter
- IP-API
- API Proxycheck.IO
1) Détecteur N°1 :l’API de https://iphub.info
Avantages :
- Gratuit :1000 requests par jour.
- Compatible avec IPv4/IPv6.
Inconvénients :
- Payant au-delà de 1000 requests/jour.
- Tarif très cher.
Vous is pouvez pouvez voir démo direct https://iphub.info tapant IP VPN haut droite site tester . utilisation is simple simple :
- Il suffit de s’inscrire sur le site pour obtenir une clé API – Une version Free à 50 requêtes par minute c’est assez, il suffira juste de bidouiller le code php afin d’éviter qu’il s’exécute chez les abonnés Orange, Free, SFR etc.. car eux il faut les considérer directement comme des « block=0 ».
- Récupérez votre clé API.
- Testez ensuite ce code PHP (sans oublier d’entrer votre clé API ):
function getBooleanFAI($ip) {
$host = @gethostbyaddr($ip);
$fai = false;
if(substr_count($host, 'proxad')) $fai = true;
if(substr_count($host, 'orange')) $fai = true;
if(substr_count($host, 'wanadoo')) $fai = true;
if(substr_count($host, 'sfr')) $fai = true;
if(substr_count($host, 'club-internet')) $fai = true;
if(substr_count($host, 'neuf')) $fai = true;
if(substr_count($host, 'gaoland')) $fai = true;
if(substr_count($host, 'bbox')) $fai = true;
if(substr_count($host, 'bouyg')) $fai = true;
if(substr_count($host, 'numericable')) $fai = true;
if(substr_count($host, 'tele2')) $fai = true;
if(substr_count($host, 'videotron')) $fai = true;
if(substr_count($host, 'belgacom')) $fai = true;
if(substr_count($host, 'bell.ca')) $fai = true;
return $fai;
}
// ignore the French Internet Providers
if ( getBooleanFAI($_SERVER["REMOTE_ADDR"]) == false ) {
$ip = gethostbyname($_SERVER["REMOTE_ADDR"]);
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, 'http://v2.api.iphub.info/ip/'.$ip);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-Key:[Entrer la clé API ici]')); // Obtenez votre clé en vous inscrivant sur https://iphub.info
$result = curl_exec($ch);
curl_close($ch);
$obj = json_decode($result, true);
$isp = $obj['isp'];
if($obj['block'] == '0'){
$block = "IP résidentielle / non classifiée (c'est-à-dire Safe IP)";
}
else if($obj['block'] == '1'){
$block = "Détection d'un VPN ou PROXY ou VPS ou Serveur dédié ou hébergeur hosting...";
}
else if($obj['block'] == '2'){
$block = "IP non résidentielle et résidentielle (avertissement, peut flagrant des personnes innocentes)";
}
else {
$block = "Connexion inconnu";
}
echo $block;
}
La documentation :
Le bloc de paramètres a été conçu avec soin pour permettre à nos utilisateurs de déterminer leur propre «niveau de risque». Nous vous recommandons d’utiliser cette variable lorsque vous décidez de bloquer l’IP interrogée pour accéder à votre application.
$obj[‘block’] = 0 – IP résidentiel / non classifié (c’est-à-dire IP sécurisé)
$obj[‘block’] = 1 – IP non résidentiel (fournisseur d’hébergement, proxy, etc.)
$ obj[‘block ‘ ] = 2 – IP non résidentiel résidentiel ( avertissement , flagrant personnes innocentes )
Nous recommandons généralement aux gens d’utiliser le niveau de risque 1 (c’est-à-dire, seul bloc sur bloc == 1). Il offre le meilleur équilibre entre arrêter les utilisateurs malveillants et éviter les faux positifs. Les variables retournées par l’API sont:
$obj[‘ip’] :IP du visiteur (Inutile dans mon cas car j’utilise $ _ SERVER[‘REMOTE_ADDR ‘ ] )
$obj[‘hostname’] : Hostname visiteur ( mieux utilisergethostbyname($ _ SERVER[‘REMOTE_ADDR ‘ ]) )
$obj[‘countryCode’] : Code du pays du visiteur (équivalent à geoip_country_code_by_name($ _ SERVER[‘REMOTE_ADDR ‘ ]) )
$ obj[‘countryName ‘ ] : Nom du pays
$obj[‘asn’] : Récupère ASN is Récupère ( Autonomous System Numbers )
$obj[‘isp’] : Récupère ISP , dirait nom F.A.I hébergeur c’ is utile utile .
$ obj[‘block ‘ ] : Déjà expliqué. Le plus utile pour détecter un VPN c’est la valeur « 1 ».
"ip":"8.8.8.8",
"hostname":"google-public-dns-a.google.com",
"countryCode":"US",
"countryName":"United States",
"asn":15169,
"isp":"GOOGLE - Google Inc.",
"block":1
2) Détecteur N°2 :l’API de http://check.getipintel.net
Avantages :
- Gratuit :500 requests par jour maximum.
- Compatible IPv4/IPv6
Inconvénients :
- Limité à 15 requests par minute
http://check.getipintel.net/check.php?ip=xx.xx.xx.xx&contact=AdresseEmail@site.com La valeur « 0 » indique que l’IP est fiable (type résidentiel), la valeur « 2 » indique que l’IP est probablement un serveur ou un vps ou tout autres choses en rapport avec les hébergeurs comme les vpn/proxys/bnc etc… Voir la documentation complète:http://getipintel.net Les requêtes sont t’elles limitées ? Aucune idée. Voici un exemple de script PHP pour l’utiliser:
$ip = gethostbyname($_SERVER["REMOTE_ADDR"]);
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, 'http://check.getipintel.net/check.php?ip='.$ip.'&contact=AdresseEmail@VotreDomaine.com');
$result = curl_exec($ch);
curl_close($ch);
if($result == '0'){
echo "IP résidentielle / non classifiée (c'est-à-dire Safe IP)";
}
else if($result == '1'){
echo "Détection d'un VPN ou PROXY ou VPS ou Serveur dédié ou hébergeur hosting...";
}
else {
echo "Connexion inconnue";
}
3) Détecteur N°3 :l’API de https://blackbox.ipinfo.app
Avantages :
- Requests illimité
- IPv4
- IPv6
Inconvénients :
https://blackbox.ipinfo.app/lookup/xx.xx.xx.xx – La valeur « Y » indique que l’IP est un VPN/ServeurDédié… et la valeur « N » indique que l’IP est fiable de type résidentielle, le « X » indique une erreur. Aucune idée si les requêtes sont limités ou non mais il semblerait que c’est illimité ce qui est bien.
Le site officiel:https://blackbox.ipinfo.app
function getBooleanFAI($ip) {
$host = @gethostbyaddr($ip);
$fai = false;
if(substr_count($host, 'proxad')) $fai = true;
if(substr_count($host, 'orange')) $fai = true;
if(substr_count($host, 'wanadoo')) $fai = true;
if(substr_count($host, 'sfr')) $fai = true;
if(substr_count($host, 'club-internet')) $fai = true;
if(substr_count($host, 'neuf')) $fai = true;
if(substr_count($host, 'gaoland')) $fai = true;
if(substr_count($host, 'bbox')) $fai = true;
if(substr_count($host, 'bouyg')) $fai = true;
if(substr_count($host, 'numericable')) $fai = true;
if(substr_count($host, 'tele2')) $fai = true;
if(substr_count($host, 'videotron')) $fai = true;
if(substr_count($host, 'belgacom')) $fai = true;
if(substr_count($host, 'bell.ca')) $fai = true;
return $fai;
}
// ignore the French Internet Providers
if ( getBooleanFAI($_SERVER["REMOTE_ADDR"]) == false ) {
$ip = gethostbyname($_SERVER["REMOTE_ADDR"]);
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, 'https://blackbox.ipinfo.app/lookup/'.$ip);
$result = curl_exec($ch);
curl_close($ch);
if($result == 'N'){
echo "IP résidentielle / non classifiée (c'est-à-dire Safe IP)";
}
else if($result == 'Y'){
echo "Détection d'un VPN ou PROXY ou VPS ou Serveur dédié ou hébergeur hosting...";
}
else {
echo "Connexion inconnue";
}
}
4) Détecteur N°4 :l’API de IPhunter.info
Démo sur le site officiel:https://www.iphunter.info
Avantages :
- Gratuit : Jusqu’à 1000 requests par jour pendant 15 jours.
- Aucune limitation à la minute.
- Compatible IPv4 / IPv6 .
- Prix très correct (jusqu’à 60 000 requests/jour pour 3€99 par mois).
- PayPal accepté.
Inconvénients :
- Payant au-delà de 1000 requests/jour
Comment utiliser l’API ?
function getBooleanFAI($ip) {
$host = @gethostbyaddr($ip);
$fai = false;
if(substr_count($host, 'proxad')) $fai = true;
if(substr_count($host, 'orange')) $fai = true;
if(substr_count($host, 'wanadoo')) $fai = true;
if(substr_count($host, 'sfr')) $fai = true;
if(substr_count($host, 'club-internet')) $fai = true;
if(substr_count($host, 'neuf')) $fai = true;
if(substr_count($host, 'gaoland')) $fai = true;
if(substr_count($host, 'bbox')) $fai = true;
if(substr_count($host, 'bouyg')) $fai = true;
if(substr_count($host, 'numericable')) $fai = true;
if(substr_count($host, 'tele2')) $fai = true;
if(substr_count($host, 'videotron')) $fai = true;
if(substr_count($host, 'belgacom')) $fai = true;
if(substr_count($host, 'bell.ca')) $fai = true;
return $fai;
}
$ip = $_SERVER["REMOTE_ADDR"]; //-- IP à consulter
// ignore les FAIs
if ( getBooleanFAI($ip) == false ) {
$apiKey = 'your_api_key'; // Votre clef API (inscription requise)
$headers = [
'X-Key:'.$apiKey,
];
$ch = curl_init("https://www.iphunter.info:8082/v1/ip/".$ip);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$output = json_decode(curl_exec($ch), 1);
$http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if($output['data']['block'] == 0){
$block = "IP résidentielle / non classifiée (c'est-à-dire Safe IP)";
}
else if($output['data']['block'] == 1){
$block = "Détection d'un VPN ou PROXY ou VPS ou Serveur dédié ou hébergeur hosting...";
}
else if($output['data']['block'] == 2){
$block = "IP non résidentielle et résidentielle (avertissement, peut flagrant des personnes innocentes)";
}
else {
$block = "Connexion inconnu";
}
echo $block;
}
Plus d’informations ici :https://www.iphunter.info/docs/jsonkeys
5) Détecteur N°5 :l’API de ip-api.com
Site web:https://ip-api.com et https://members.ip-api.com
Avantages :
- Gratuit : Jusqu’à 45 requests par minute.
- Compatible IPv4 / IPv6 .
- Prix 13 € mois ( requests illimités ) .
- PayPal accepté.
Inconvénients :
6) Détecteur N°6 :l’API de proxycheck.io
Site web:https://proxycheck.io
Avantages :
- Gratuit : Jusqu’à 1000 requests par jour.
- Compatible IPv4 / IPv6 .
- Prix d’environ 4$ par mois (jusqu’à 20 000 requests par jour).
- PayPal accepté sur demande.
Inconvénients :
Codes sources :https://github.com/Mimacy/Detection-VPN
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...