ホームページ > バックエンド開発 > PHPチュートリアル > PHP Web サイトの同じ IP クエリ コード_PHP チュートリアル

PHP Web サイトの同じ IP クエリ コード_PHP チュートリアル

WBOY
リリース: 2016-07-20 11:06:31
オリジナル
917 人が閲覧しました

このソース コードは IP クエリ コードを含む PHP Web サイトです。気に入ったら、アクセスして見てください。

if(function_exists('date_default_timezone_set')){
date_default_timezone_set('Asia/Shanghai') //タイムゾーンを設定します
}
define("APP_ROOT",dirname(dirname(__FILE__)); / /ウェブサイトのルートディレクトリ

function visitIP(){ //訪問者IP
if($_SERVER['HTTP_X_FORWARDED_FOR']){
$ipa = $_SERVER['HTTP_X_FORWARDED_FOR'];
}elseif($_SERVER['HTTP_CLIENT_IP' ] ){
$ipa = $_SERVER['HTTP_CLIENT_IP'];
}else{
$ipa = $_SERVER['REMOTE_ADDR'];
}
return $ipa;
}

function cleanDomain($q,$w = 0){ //ドメイン名 $w=1 を整理して www をフィルタリングします。プレフィックス $w=0 はフィルタしません
$q = htmlspecialchars(strto lower(trim($q)));
if(substr($q,0) ,7) == "http://" || substr($q,0,8) == "https://" || substr($q,0,6) == "ftp://") {
$ q = str_replace("http://","",$q);
$q = str_replace("https://","",$q);
$q = str_replace("ftp: //","" ,$q);
}
if(substr($q,0,4) == "www." && $w==1) {
$q = str_replace("www.", "",$q) ;
}
$q = トリム($q,"/");
return $q;
}

//获取网页
class HTTPRequest
{
/*
获取网页
*/
var $_fp;        // HTTP ソケット
var $_url;        // 完全な URL
var $_host;        // HTTP ホスト
var $_protocol;    // プロトコル (HTTP/HTTPS)
var $_uri;        // リクエスト URI
var $_port;        // port

// URL をスキャン
function _scan_url()
{
$req = $this->_url;

$pos = strpos($req, '://');
$this-> _protocol = strto lower(substr($req, 0, $pos));

$req = substr($req, $pos+3);
$pos = strpos($req, '/');
if($ pos === false)
$pos = strlen($req);
$host = substr($req, 0, $pos);

if(strpos($host, ':') !== false)
{
list($this->_host, $this->_port) =explode(':', $host);
else
{
$this->_host = $host;
$this- >_port = ($this->_protocol == 'https') ? 443 : 80;
}

$this->_uri = substr($req, $pos);
if($this->_uri == '')
$this->_uri = '/';
}

//constructor
function HTTPRequest($url)
{
$this->_url = $url;
$this->_scan_url();
}

// URLを文字列にダウンロード
関数 DownloadToString ()
{
$crlf = "rn";
$response="";
// リクエストを生成します
$req = 'GET ' . $this->_uri 。 「HTTP/1.0」。 $crlf
.    'ホスト: ' 。 $this->_host 。 $crlf
.    $crlf;

// fetch
$this->_fp = @fsockopen(($this->_protocol == 'https' ? 'ssl://' : '') . $this->_host, $this->gt;_port);
@fwrite($this->_fp, $req);
while(is_resource($this->gt;_fp) && $this->gt;_fp && !feof($this->gt ;_fp))
$response .= fread($this->_fp, 1024);
@fclose($this->_fp);

// ヘッダーと本文を分割します
$pos($response 、 $crlf . $crlf);
if($pos === false)
return($response);
$header = substr($response, 0, $pos);
$body = substr($response, $pos + 2 * strlen($crlf));

// ヘッダーを解析します
$headers = array();
$lines =explode($crlf, $header);
foreach($lines as $line)
if(( $pos = strpos($line, ':')) !== false)
               $headers[strtolower(trim(substr($line, 0, $pos)))] = trim(substr($line, $pos+1));
      
       // redirection?
       if(isset($headers['location']))
       {
           $http = new HTTPRequest($headers['location']);
           return($http->DownloadToString($http));
       }
       else
       {
           return($body);
       }
   }
}

function get_html($siteurl) {
 //将网页代码存入字符串
 $r=new HTTPRequest($siteurl);
 $htm=$r->DownloadToString();
 return $htm;
}

$visitorip = visitorIP();

$q = cleanDomain($_POST['q']);
$q_encode = urlencode($q);

$title = "同IP站点查询";

$chaxun_status = 0; //查询状态 -1是没有查询参数,0是查询出错,1是查域名,2是查IP

if(isset($_GET['action']) && trim($_GET['action']) == "do"){ //AJAX调出数据
 $ipArr = ReverseIP($q);
 if(count($ipArr)>0){
  echo '

在此IP找到了'.count($ipArr).'个域名,见下:

';
  echo '
';
}else{
echo '

IP '.$ip.' に対応するドメイン名レコードが見つかりません!

';
}
die();
}

function IpToInt($Ip){ //IP を数値に変換します
$array=explode('.',$Ip);
$Int=( $array[0] * 256*256*256) + ($array[1]*256*256) + ($array[2]*256) + $array[3];
return $Int;
}

function ReverseIP($q){
$htm = get_html('http://www.ip-adress.com/reverse_ip/'.$q);
preg_match_all('/Whois/', $htm, $tt);
$res = $tt[1];
return $res;
}

if(preg_match("/[a-zA- Z-_]+/si",$q)){ //クエリがドメイン名の場合
$ip = gethostbyname($q);
if($ip == $q){
$ip = $visitorip ;
$chaxun_status = -1;
}else{
$chaxun_status = 1;
}
}elseif(ereg("^[0-9]{1,3}.[0-9]{1,3}. [0 -9]{1,3}.[0-9]{1,3}$",$q)){ //クエリが IP の場合
$ip = $q;
$chaxun_status = 2;
}else {
$ip = $visitorip;
}
?>



同じ IP サイトのクエリ

< if($chaxun_status>0){ ? > ;

最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート