PHP獲取IP所在地區

2021-07-07 02:18:37 字數 3952 閱讀 6235

這是乙個php獲取客戶端ip所在地區的類,它能根據ip位址查地區,簡單實用。

使用示例

示例一:

$iplocation

=new

iplocation

();$client

=$iplocation

->

getlocation

();print_r

($client

);

示例二:

$iplocation

=new

iplocation

('../qqwry/qqwry.dat'

);$client

=$iplocation

->

getlocation

('115.148.101.72'

);print_r

($client

);

相關說明

此類要求提供純真ip資料庫,附件包裡包含有此資料庫。

iplocation.class.php

class iplocation 

/*** 返回讀取的3個位元組的長整型數

* @access

private

* @return

int*/

function

getlong3

()/**

* 返回壓縮後可進行比較的ip位址

* @access

private

* @param

string $ip

* @return

string

*/function

packip

($ip

)/**

* 返回讀取的字串

* @access

private

* @param

string $data

* @return

string

*/function

getstring

($data=""

)return

$data;}

/*** 返回地區資訊

* @access

private

* @return

string

*/function

getarea

()return

$area;}

/*** 根據所給 ip 位址或網域名稱返回所在地區資訊

* @access

public

* @param

string $ip

* @return

array

*/function

getlocation

($ip=''

)else

else

// 使用者的ip在中間記錄的ip範圍內時}}

/* 獲取查詢到的ip地理位置資訊 */

fseek

($this

->fp,

$findip

);$location

['beginip']=

long2ip

($this

->

getlong

());

// 使用者ip所在範圍的開始位址

$offset

=$this

->

getlong3

();fseek

($this

->fp,

$offset

);$location

['endip']=

long2ip

($this

->

getlong

());

// 使用者ip所在範圍的結束位址

$byte

=fread

($this

->fp,1);

// 標誌位元組

switch

(ord

($byte

))break

;case2:

// 標誌位元組為2,表示國家資訊被重定向

fseek

($this

->fp,

$this

->

getlong3

());

$location

['country']=

$this

->

getstring

();fseek

($this

->fp,

$offset+8

);$location

['area']=

$this

->

getarea

();break

;default

:// 否則,表示國家資訊沒有被重定向

$location

['country']=

$this

->

getstring

($byte

);$location

['area']=

$this

->

getarea

();break;}

if($location

['country']==

" cz88.net"

)// cz88.net表示沒有有效資訊if(

$location

['area']==

" cz88.net"

)return

$location;}

/*** 獲取客戶端ip位址

/*** 建構函式,開啟 qqwry.dat 檔案並初始化類中的資訊

* @param

string $filename

* @return

iplocation

*/function

iplocation

($filename=""

)}/*** 析構函式,用於在頁面執行結束後自動關閉開啟的檔案。

*/function

_iplocation

()}

PHP獲取IP所在地區

1.獲取ip位址的api ip位址庫api 位址字串 根據訪問者ip顯示對應地區的特定內容 根據訪問者ip,來讀ip庫或介面獲取地區,用該地區做篩選查詢 純真ip資料庫檔案版 示例一 iplocation new iplocation client iplocation getlocation pr...

PHP獲取IP所在地位址

原理簡述 利用 ip.taobao.com 提供的乙個功能,先獲取 json 格式字串,再解碼 json 字串新建檔案getaddress.class.php classss getaddress 獲取ip所在地位址函式 param ip p位址,預設為本機ip function getipfrom...

根據使用者IP獲取其所在地

預定義變數 server的用法中,我們可以發現引數 remote addr 的作用是 瀏覽當前頁面的使用者的 ip 位址。根據這個我們可以獲取客戶端的ip,根據獲取的ip我們又可以進一步獲取對方的所在地等其他資訊。這一節主要是了解一下如何獲取客戶端的ip位址,並定位其所在地。我們先看看 實現 將 部...