手冊上的GeoIP擴充套件詳解,按手冊整理了一遍

2021-07-23 18:45:15 字數 4238 閱讀 8976

手冊中,"其它基本擴充套件->geoip",有乙個geoip擴充套件,今天我們來研究下這個擴充套件:

geoip擴充套件允許你查詢ip位址的位置。可以借助geoip獲取:城市,州,國家,經度,緯度,以及其它資訊,例如:isp(網路服務提供商)和鏈結型別

<?php

$infos = geoip_db_get_all_info();

if (is_array($infos))

?>

輸出:

array(11) 

[ ... ]

[11]=>

array(3)

}

有一點,需注意下:

最外層陣列的索引下標,表示的是不同的資料庫型別常量。 

geoip_domain_by_name(string $hostname)

返回關聯的主機名或ip位址的二級網域名稱

該函式目前僅對商業'geoip domain edition'有效,如果發現對應的資料庫不存在,則顯示乙個警告

1.$hostname 

查詢的主機名或ip位址

2.返回值

成功返回相應的網域名稱,在資料庫中未發現位址,返回false

geoip_id_by_name(string $hostname)

返回對應的主機名或ip位址的網際網路連線型別

返回值是數字,是下面常量中的乙個:

geoip_unknown_speed

geoip_dialup_speed

geoip_cabledsl_speed

geoip_corporate_speed

1.$hostname 

查詢的主機名或ip位址

2.返回值

返回連線型別

3.手冊上例項:

<?php

$netspeed = geoip_id_by_name('www.example.com');

echo 'the connection type is ';

switch ($netspeed)

?>

geoip_isp_by_name(string $hostname)     // 獲取對應的主機名或ip位址的isp(internet service provider-網路運營商)名字

geoip_netspeedcell_by_name(string $hostname)

返回主機名或ip位址對應的網際網路連線型別和連線速度

該函式只能用於 geoip庫 1.4.8以後

該函式目前僅對購買了商業 "geoip netspeedcell edition" 的使用者有效,如果發現對應的資料庫不存在,則顯示乙個警告

返回乙個字串,常見的值是:

cable/dsl

dialup

cellular

corporate

1.$hostname 

查詢的主機名或ip位址

2.返回值

成功返回連線speed,如果在資料庫中未找到位址,返回false

geoip_org_by_name(string $hostname)

返回主機名或ip位址,對應的組織名。

該函式目前僅對購買了商業 "geoip organization, isp or as edition" 的使用者有效,如果發現對應的資料庫不存在,則顯示乙個警告

1.$hostname 

查詢的主機名或ip位址

2.返回值

成功返回組織名,如果在資料庫中未找到位址,返回false

geoip_record_by_name(string $hostname)

返回主機名或ip位址對應的在 geoip 資料庫中的詳細的城市資訊

該函式對 'geolite city edition' 和 商業'geoip city edition' 都是有效的,如果發現對應的資料庫不存在,則顯示乙個警告。

返回的關聯陣列的下標列表如下:

continent_code - 2個字母的 '洲碼'

country_code - 2個字母的 '國家碼'(檢視 geoip_country_code_by_name())

country_code3 - 3個字母的 '國家碼'(檢視 geoip_country_code3_by_name())

country_name - 國家名(檢視 geoip_country_name_by_name())

region - 地區碼(例如:ca-california)

city - 城市

postal_code - 郵編,fsa或zip碼

latitude - 經度

longtitude - 緯度

dma_code - designated market area code(僅僅美國和加拿大)

area_code - pstn 區域碼(例如:212)

geoip_region_by_name(string $hostname)

返回主機名或ip位址對應的國家和地區。

該函式目前僅對購買了商業 "geoip region edition" 的使用者有效,如果發現對應的資料庫不存在,則顯示乙個警告

返回的關聯陣列的下標列表如下:

country_code - 2個字母的 '國家碼'(檢視 geoip_country_code_by_name())

region - 地區碼(例如:ca-california)

geoip_region_name_by_code(string $country_code, string $region_code)

根據國家碼和地區碼組合,獲取地區名

在美國,地區碼對應每個州的2個字母縮寫。在加拿大,地區碼對應2個字母的省份或區域碼,由加拿大郵政制定的

對於世界上的其它國家,geoip 使用 fips 10-4 編碼代表地區。可檢視完整的列表:

geoip擴充套件庫自1.4.1以後,該函式都是有效的,資料的獲取是直接來自 geoip擴充套件庫,而不是從任何資料庫中獲取

1.$country_code

2個字母的國家碼(檢視 geoip_country_code_by_name())

2.$region_code

2個字母(或數字)的地區碼(檢視 geoip_region_by_name())

3.返回值

成功返回地區名,如果國家碼和地區碼組合未找到,返回false

4.例項:

美國/加拿大

echo geoip_region_name_by_code('ca', 'qc');     // quebec

日本 - (原諒我,手冊中的例項是日本,我暫未測試)

geoip_region_name_by_code('jp', '01');          // aichi

中國 - 測試了哈

geoip_region_name_by_code('cn', '01');          // anhui

geoip_time_zone_by_country_and_region(string $country_code[, string $region_code])  // 根據國家碼和地區碼組合,返回對應的時區

1.$country_code

2個字母的國家碼(檢視 geoip_country_code_by_name())

2.$region_code

2個字母(或數字)的地區碼(檢視 geoip_region_by_name())

3.返回值

成功返回時區,如果國家碼和地區碼組合未找到,返回false

4.例項:

geoip_region_name_by_code('cn', '23');          // asia/shanghai(23-表示上海)

geoip_setup_custom_directory(string $path)

改變 geoip 資料庫的預設目錄,等同於改變 'getip.custom_directory' 的配置

1.$path

硬碟上 geoip 資料庫的全路徑

2.例項:

<?php

geoip_setup_custom_directory('/some/other/path'); // 改變路徑

print geoip_db_filename(geoip_country_edition); // 輸出:/some/other/path/geoip.dat

?>

C 的擴充套件方法詳解

必須是靜態類才可以新增擴充套件方法 static class program 宣告擴充套件方法 擴充套件方法必須是靜態的,add有三個引數 this 必須有,string表示我要擴充套件的型別,stringname表示物件名 三個引數this和擴充套件的型別必不可少,物件名可以自己隨意取如果需要傳遞...

linux上增加php redis的擴充套件

注意 目錄的許可權 chomd 777 r 1 安裝redis 上傳phpredis 2.2.4.tar.gz到 usr local src目錄 cd usr local src 進入軟體包存放目錄 tar zxvf phpredis 2.2.4.tar.gz 解壓 cd phpredis 2.2....

有關晶元手冊上的偏置的概念

因為要使電晶體處於放大狀態,其基極 射極之間的pn結應該正偏,集電極 基極之間的pn結應該反偏。因此,設定電晶體基射結正偏 集基結反偏。使電晶體工作在放大狀態的電路,簡稱為偏置電路 可以理解為設定正反偏的電路 而使電晶體工作在放大狀態的關鍵是其 基極電壓,因此,基極電壓又稱為偏置電壓。又由於使電晶體...