ホームページ  >  記事  >  バックエンド開発  >  PHP は実際の IP の取得、IP のシミュレート、IP の隠蔽、プロキシ IP、IP の偽装、高匿名性プロキシ、共通匿名性プロキシ、透過的プロキシ IP

PHP は実際の IP の取得、IP のシミュレート、IP の隠蔽、プロキシ IP、IP の偽装、高匿名性プロキシ、共通匿名性プロキシ、透過的プロキシ IP

WBOY
WBOYオリジナル
2016-06-20 13:00:322070ブラウズ

PHP は実際の IP の取得、IP のシミュレート、IP の隠蔽、プロキシ IP、IP の偽装、高匿名性プロキシ、共通匿名プロキシ、透過的プロキシ IP

私は、PHP 業界の主要なオープンソース システムと、ユーザーの実際の IP を国際的に取得している 6 つのケースを大まかにリストします (Magento Zencart Zend Framework Yii を含む...国内のものについては言及しません! それらをすべて抹消します!):

ユーザーの実際の IP を取得するための PHP 方法 1:

<?php
function GetIP(){
if(!empty($_SERVER["HTTP_CLIENT_IP"])){
  $cip = $_SERVER["HTTP_CLIENT_IP"];
}
elseif(!empty($_SERVER["HTTP_X_FORWARDED_FOR"])){
  $cip = $_SERVER["HTTP_X_FORWARDED_FOR"];
}
elseif(!empty($_SERVER["REMOTE_ADDR"])){
  $cip = $_SERVER["REMOTE_ADDR"];
}
else{
  $cip = "无法获取!";
}
return $cip;
}
echo GetIP();
?> 

ユーザーの実際の IP を取得するための PHP メソッド 2:

<?php
error_reporting (E_ERROR | E_WARNING | E_PARSE);
if($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"]){
$ip = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];
}
elseif($HTTP_SERVER_VARS["HTTP_CLIENT_IP"]){
$ip = $HTTP_SERVER_VARS["HTTP_CLIENT_IP"];
}
elseif ($HTTP_SERVER_VARS["REMOTE_ADDR"]){
$ip = $HTTP_SERVER_VARS["REMOTE_ADDR"];
}
elseif (getenv("HTTP_X_FORWARDED_FOR")){
$ip = getenv("HTTP_X_FORWARDED_FOR");
}
elseif (getenv("HTTP_CLIENT_IP")){
$ip = getenv("HTTP_CLIENT_IP");
}
elseif (getenv("REMOTE_ADDR")){
$ip = getenv("REMOTE_ADDR");
}
else{
$ip = "Unknown";
}
echo $ip;
?> 

ユーザーの実際の IP を取得するための PHP メソッド 3:

<?php
$iipp = $_SERVER["REMOTE_ADDR"];
echo $iipp ;
?> 

ユーザーの実際の IP を取得するための PHP メソッド 4:

<?php
$user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"];
$user_IP = ($user_IP) ? $user_IP : $_SERVER["REMOTE_ADDR"];
echo $user_IP
?> 

ユーザーの実際の IP を取得するための PHP メソッド 5:

<?php
function get_real_ip()
{
$ip=false;
if(!empty($_SERVER["HTTP_CLIENT_IP"])){
  $ip = $_SERVER["HTTP_CLIENT_IP"];
}
if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
  $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
  if($ip){
   array_unshift($ips, $ip); $ip = FALSE;
  }
  for($i = 0; $i < count($ips); $i++){
   if (!eregi ("^(10|172\.16|192\.168)\.", $ips[$i])){
    $ip = $ips[$i];
    break;
   }
  }
}
return($ip ? $ip : $_SERVER['REMOTE_ADDR']);
}
echo get_real_ip();
?> 

ユーザーの実際の IP を取得するための PHP メソッド 6:

<?php
if(getenv('HTTP_CLIENT_IP')){
$onlineip = getenv('HTTP_CLIENT_IP');
}
elseif(getenv('HTTP_X_FORWARDED_FOR')){
$onlineip = getenv('HTTP_X_FORWARDED_FOR');
}
elseif(getenv('REMOTE_ADDR')){
$onlineip = getenv('REMOTE_ADDR');
}
else{
$onlineip = $HTTP_SERVER_VARS['REMOTE_ADDR'];
}
echo $onlineip;
?>

ユーザーの実際の IP を取得する原則:

ゲストオフィサーは、ユーザーの実際の IP を取得するために業界で一般的に使用されている方法を読んだ後、共通のパターンを発見しました。その主なコアは

HTTP_CLIENT_IP

HTTP_X_FORWARDED_FOR

REMOTE_ADDR

さまざまな進化、コードの互換性だけ!

ユーザーの実際の IP をシミュレートするにはどうすればよいですか?

質問: HTTP_CLIENT_IP を偽造してシミュレートし、HTTP_X_FORWARDED_FOR を偽造してシミュレートし、REMOTE_ADDR を偽造してシミュレートできれば、ユーザーの実際の IP を追跡できないという目的は達成できるのではないでしょうか?

答え: 上記の理解は完全に正しいです!これを実行すると、ユーザーの実際の IP を取得し、ユーザーの IP を識別子として使用するシステムの 99% を完全に停止できます。

(カール、ソケット、fsocketopen、stream_socket_client):

HTTP_CLIENT_IP をシミュレートするには? HTTP_CLIENT_IP をシミュレートできますか? HTTP_CLIENT_IP を偽装してください!

curl_setopt($curl, CURLOPT_HTTPHEADER, array (
            'Client_Ip: '.mt_rand(0, 255).'.'.mt_rand(0, 255).'.'.mt_rand(0, 255).'.'.mt_rand(0, 255),
));//优点:伪造成本低,通杀90%系统

HTTP_X_FORWARDED_FOR をシミュレートするにはどうすればよいですか? HTTP_X_FORWARDED_FOR をシミュレートできますか? HTTP_X_FORWARDED_FOR を偽装してください!

curl_setopt($curl, CURLOPT_HTTPHEADER, array (
            'X-Forwarded-For: '.mt_rand(0, 255).'.'.mt_rand(0, 255).'.'.mt_rand(0, 255).'.'.mt_rand(0, 255),
));//优点:伪造成本低,通杀90%系统

REMOTE_ADDR をシミュレートするにはどうすればよいですか? REMOTE_ADDR をシミュレートできますか? REMOTE_ADDR を偽装してください!

curl_setopt($curl, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
curl_setopt($curl, CURLOPT_PROXY, '1.1.1.1:8080');//自行百度获得普匿代理IP即可,高匿代理IP更佳!
//优点:通杀100%系统


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。