【PHP】幾種免費的通過IP獲取IP所在地理位置的接口(部分免費部分收費)

目錄

一、獲取客戶端IP地址

二、獲取IP所在地理位置接口

1、IP域名歸屬地查詢

2、騰訊地圖 - IP定位

3、聚合數據 - IP地址(推薦)

4、高德地圖 - IP定位(推薦)

5、360分享計劃 - IP查詢

6、天聚ip地址查詢?

7、百度IP地址查詢?

?8、IP歸屬地查詢


整理收集了幾種通過IP地址獲取所在地理位置的接口,部分免費,部分有次數限制。

一、獲取客戶端IP地址

//獲取ip地址
function get_ip(){if (isset($_SERVER)) {if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {$realip = $_SERVER['HTTP_X_FORWARDED_FOR'];} elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {$realip = $_SERVER['HTTP_CLIENT_IP'];} else {$realip = $_SERVER['REMOTE_ADDR'];}} else {if (getenv("HTTP_X_FORWARDED_FOR")) {$realip = getenv( "HTTP_X_FORWARDED_FOR");} elseif (getenv("HTTP_CLIENT_IP")) {$realip = getenv("HTTP_CLIENT_IP");} else {$realip = getenv("REMOTE_ADDR");}}return $realip;
}

二、獲取IP所在地理位置接口

一些通用的方法,用于處理接口:CURL請求,將JSON轉為數組

// CURL請求
public function freeApiCurl($url,$params=false,$ispost=0){$ch = curl_init();curl_setopt( $ch, CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_1 );curl_setopt( $ch, CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_1 );curl_setopt( $ch, CURLOPT_USERAGENT , 'free-api' );curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT , 60 );curl_setopt( $ch, CURLOPT_TIMEOUT , 60);curl_setopt( $ch, CURLOPT_RETURNTRANSFER , true );if( $ispost ){curl_setopt( $ch , CURLOPT_POST , true );curl_setopt( $ch , CURLOPT_POSTFIELDS , $params );curl_setopt( $ch , CURLOPT_URL , $url );}else{if($params){curl_setopt( $ch , CURLOPT_URL , $url.'?'.$params );}else{curl_setopt( $ch , CURLOPT_URL , $url);}}$response = curl_exec( $ch );if ($response === FALSE) {return false;}curl_close( $ch );return $response;
}/*** 將JSON內容轉為數據,并返回*/
public function returnArray($content){return json_decode($content,true);
}

1、IP域名歸屬地查詢

接口描述:(免費無限制)

?名稱說明
接口名稱IP/域名歸屬地查詢
接口地址https://api.asilu.com/ip/
請求方式GET/POST
官方文檔API 接口

?請求參數說明

參數必填含義說明
ipIP地址ip地址或域名,缺省時會使用當前請求端的Ip?

返回參數說明

名稱含義說明
ipip地址當前ip地址或域名
dz地理位置請求IP的地理位置
wl運營商

?代碼示例

$ip = get_ip();
$apiUrl = 'https://api.asilu.com/ip/?ip='.$ip;
$result = $this->returnArray($this->freeApiCurl($apiUrl));

2、騰訊地圖 - IP定位

接口描述:收費

IP定位-免費API,收集所有免費的API在此申請key,每天可用10000次

?名稱說明
接口名稱IP定位
接口地址https://apis.map.qq.com/ws/location/v1/ip
請求方式GET
來源騰訊地圖
官方文檔

WebService API | 騰訊位置服務

?請求參數說明

參數必填含義說明
key開發密鑰
ipIP地址ip地址或域名,缺省時會使用當前請求端的Ip?
output返回格式支持JSON/JSONP,默認JSON
callbackJSONP方式回調函數

返回參數說明

名稱類型說明
statusnumber狀態碼,0為正常,其它為異常,詳細請參閱狀態碼說明
messagestring對status的描述
resultobjectIP定位結果
ipstring用于定位的IP地址
locationobject定位坐標。注:IP定位服務精確到市級,該位置為IP地址所屬的行政區劃政府坐標。
latnumber緯度
lngnumber經度
ad_infoobject定位行政區劃信息
nationstring國家
nation_codenumber國家代碼(ISO3166標準3位數字碼)
provincestring
citystring
districtstring
adcodenumber行政區代碼

代碼示例?

$ip = get_ip();
$apiUrl = 'https://apis.map.qq.com/ws/location/v1/ip';
$params = ["key" => "xxxxxx","ip" => $ip];
$params = http_build_query($params);
$result = $this->returnArray($this->freeApiCurl($apiUrl,$params,1));

3、聚合數據 - IP地址(推薦)

接口描述:收費,每天有50次免費額度?- 聚合數據

IP地址-免費API,收集所有免費的API?在此申請key,每天可用500次,推薦

?名稱說明
接口名稱IP地址查詢
接口地址http://apis.juhe.cn/ip/ipNewV3
請求方式GET/POST
來源聚合數據
官方文檔IP地址查詢接口_IP歸屬地查詢接口_免費API數據接口_聚合數據 - 天聚地合

?請求參數說明

參數必填含義說明
key開發密鑰在個人中心->我的數據,接口名稱上方查看
ipIP地址需要查詢的IPv4地址。暫不支持IPv6地址

返回參數說明

名稱含義說明
error_code返回碼0表示成功
resultcode狀態碼200表示成功
reason返回說明
result返回結果集
Country國家/地區
Province省份區域,部分可能為空
City城市,部分可能為空
Isp運營商,部分可能為空

代碼示例

$ip = get_ip();
$apiUrl = 'http://apis.juhe.cn/ip/ipNew';
$params = ["key" => "xxxxxxx","ip" => $ip];$params = http_build_query($params);
$rs = $this->returnArray($this->freeApiCurl($apiUrl,$params,1));

4、高德地圖 - IP定位(推薦)

接口描述:收費,每月有150000次免費額度。高德地圖IP定位接口支持HTTP/HTTPS

名稱說明
接口名稱高德IP定位
接口地址https://restapi.amap.com/v3/ip?parameters
請求方式GET
來源高德地圖
官方文檔IP定位-基礎 API 文檔-開發指南-Web服務 API | 高德地圖API

?請求參數說明

參數必填含義說明
key請求服務權限標識用戶在高德地圖官網?申請?Web?服務?API?類型?KEY
ipIP地址需要搜索的IP地址,若不填寫IP,則使用當前IP
sig簽名選擇數字簽名認證的付費用戶必填

返回參數說明

名稱含義說明
status結果狀態值0表示失敗,1表示成功
info狀態說明當status為0時,info返回錯誤原因,否則返回OK
infocode狀態碼10000代表正確
province省份

如果在局域網?IP?網段內,則返回“局域網”;

非法?IP?以及國外?IP?則返回空

city城市如果為局域網網段內?IP?或者非法?IP?或國外?IP,則返回空
adcode城市的?adcode?編碼adcode?信息可參考?城市編碼表?獲取
rectangle所在城市矩形區域范圍所在城市范圍的左下右上對標對

代碼示例

前端調用寫法

<script src="/newadmin/js/jquery-1.12.3.min.js" charset="utf-8"></script> 
<script>
$.ajax({url:'https://restapi.amap.com/v3/ip?key=xxxxxx',data:{ip:'223.104.3.43'},    //不填查詢當前IPsuccess:function (data) {//市,如鄭州市var city = data.city;//郵編:410100var cityCode = data.adcode;//省份:河南省var province = data.province;//省郵編:410000var provinceCode = data.provinceCode;//經度 & 維度,以;間隔var rectangle = data.rectangle;console.log(data)}
});
</script>

后端調用寫法

$ip = '223.104.44.14';
$key = 'xxxxxx';
$apiUrl = 'https://restapi.amap.com/v3/ip';
$params = ["key" => $key,"ip" => $ip,
];
$params = http_build_query($params);
$result = $this->returnArray($this->freeApiCurl($apiUrl,$params));

5、360分享計劃 - IP查詢

接口描述:免費,不穩定,有時候有數據有時候無數據

?名稱說明
接口名稱IP地址查詢
接口地址http://ip.360.cn/IPQuery/ipquery
請求方式GET/POST
來源360分享計劃

?請求參數說明

參數必填含義說明
ipIP地址需要查詢的IP地址

返回參數說明

名稱含義說明
errno返回碼0表示成功
code返回碼當code=null時,請求失敗
errmsg錯誤信息errno為0時,錯誤信息為空
data返回地理位置及運營商如:北京市? ?移動

代碼示例

public function index(){$ip = get_ip();$apiUrl = 'http://ip.360.cn/IPQuery/ipquery';$params = ["ip" => $ip];$params = http_build_query($params);$result = $this->returnArray($this->freeApiCurl($apiUrl,$params,1));}

這個接口好像對市級不太精準,這個Ip是河南鄭州的,結果返回河南駐馬店,請酌情使用?

6、天聚ip地址查詢?

接口描述:收費,每天有100次的免費額度

?名稱說明
接口名稱IP地址查詢
接口地址https://apis.tianapi.com/ipquery/index
請求方式GET/POST
來源天聚數行
官方文檔ip地址查詢API接口 - 天聚數行TianAPI

?請求參數說明

參數必填含義說明
keyAPI密鑰官網注冊申請
ipIP地址需要查詢的IP地址
full是否需要省市全稱1表示需要

返回參數說明

名稱含義說明
code狀態碼200表示成功
msg錯誤信息成功時顯示success,錯誤時顯示錯誤信息
result返回結果集
ipip地址
continent大陸州
country國家
province省級行政區
city城市
district地區
isp網絡運營商
areacode地區編碼
countrycode國家代碼
countryenglish國家英文名稱
timezone國際時區
longitude經度
latitude緯度

代碼示例

$ip = '223.104.44.14';
$apiUrl = 'https://apis.tianapi.com/ipquery/index';
$params = ["key" => "xxxxxx","ip" => $ip,"full" => "1"];
$params = http_build_query($params);
$result = $this->returnArray($this->freeApiCurl($apiUrl,$params,1));

7、百度IP地址查詢?

接口描述:免費

?名稱說明
接口名稱百度IP地址查詢
接口地址http://opendata.baidu.com/api.php
請求方式GET
來源百度開放中心

?請求參數說明

參數必填含義說明
queryIP地址需要查詢的IP地址
resource_id資源id填寫6006即可
oe數據編碼utf8
format返回數據格式json

返回參數說明(下面只列出主要參數,詳細返回參數可查看下面截圖)

名稱含義說明
status狀態碼0表示成功
data返回數據集
OriginQuery請求的ip地址
location地理位置和運營商如:河南省鄭州市? ?移動
resource_id資源id

代碼示例

$ip = '111.7.100.23';
$apiUrl = 'http://opendata.baidu.com/api.php?query='.$ip.'&resource_id=6006&oe=utf8&format=json';
$result = $this->returnArray($this->freeApiCurl($apiUrl));

?8、IP歸屬地查詢

接口描述:免費,穩定性較差,自動區分IPv4/IPv6

?名稱說明
接口名稱IP歸屬地查詢
接口地址https://api.vore.top/api/IPdata
請求方式GET
來源vore-api,由個人搭建

?請求參數說明

參數必填含義說明
ipIP地址需要查詢的IP地址

返回參數說明(下面只列出主要參數,詳細返回參數可查看下面截圖)

名稱類型含義說明
codestring狀態碼200表示成功
msgstring錯誤信息成功時顯示SUCCESS,錯誤時顯示錯誤信息
ipinfoobjectip信息包括ip的類型,請求的ip地址
ipdataobjectip數據
info1string省份
info2string城市
info3string
ispstring運營商
adcodeobject行政區劃信息集
ostring定位信息及運營商河南省鄭州市 - 移動
pstring省份
cstring城市
..................
time當前時間戳

代碼示例

$ip = '111.7.100.23';
$apiUrl = 'https://api.vore.top/api/IPdata?ip='.$ip;
$result = $this->returnArray($this->freeApiCurl($apiUrl));

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/91640.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/91640.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/91640.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Excel】制作雙重餅圖

一、效果話不多說&#xff0c;直接上數據和效果圖&#xff01;&#xff08;示例軟件&#xff1a;WPS Office&#xff09;類別現金刷卡小計蘋果10.005.0015.00荔枝20.0015.0035.00西瓜30.0025.0055.00總計60.0045.00105.00二、步驟&#xff08;一&#xff09;制作底圖插入餅圖&a…

gcc-arm-none-eabi安裝后,找不到libgcc.a的拉置

位置在&#xff1a;/usr/lib/gcc/arm-none-eabi/6.3.1/libgcc.a查找方法&#xff1a;arm-none-eabi-gcc --print-libgcc-file-name以前沒找到&#xff0c;是因為進錯目錄&#xff1a;/usr/lib/arm-none-eabi/lib

上證50期權2400是什么意思?

本文主要介紹上證50期權2400是什么意思&#xff1f;“上證50期權2400”通常指上證50ETF期權的某個具體合約代碼&#xff0c;其中“2400”是合約代碼的一部分&#xff0c;需結合完整代碼格式理解其含義。上證50期權2400是什么意思&#xff1f;一、上證50期權合約代碼的組成上證5…

發那科機器人P點位置號碼自動變更功能為禁用狀態

通過改變變量的狀態&#xff0c;發那科機器人可以實現&#xff0c;當在程序中進行記錄、修改、插入、刪除、復制/粘貼包含有P點位置號碼的行時&#xff0c;P點位置號碼會自動從小到大自動排列&#xff0c;可以實現自動排列&#xff0c;或者點擊編輯變更編號也可以下圖所示女變量…

什么叫湖倉一體

文章目錄概念一、理解湖倉一體&#xff1a;先搞懂“數據湖”和“數據倉庫”1. 數據倉庫&#xff08;Data Warehouse&#xff09;2. 數據湖&#xff08;Data Lake&#xff09;3. 傳統架構的痛點&#xff1a;“湖”與“倉”的割裂二、湖倉一體的核心特點&#xff1a;融合“湖”與…

網絡安全突發事件應急預案方案

最近有要求需要出一個網絡安全突發事件應急預案方案&#xff0c;本文僅就應急預案問題提出一點初步思考&#xff0c;意在拋磚引玉&#xff0c;盼各位讀者不吝賜教&#xff0c;共同完善對這一領域的認識。一、總則 &#xff08;一&#xff09;目的 為有效應對規劃建筑設計院企業…

【基于3D Gaussian Splatting的三維重建】保姆級教程 | 環境安裝 | 制作-訓練-測試自己數據集 | torch | colmap | ffmpeg | 全過程圖文by.Akaxi

目錄 一.【3DGS環境配置】 1.1 克隆3DGS倉庫 1.2 安裝Visual Studio 2022 1.2.1 下載Visual Studio 2022 1.2.2 更改環境變量 1.3 創建環境 1.3.1 創建python環境 1.3.2 離線安裝torch包 1.3.3 安裝依賴包 1.3.4安裝子模塊 &#xff08;1&#xff09;報錯解決&…

C#泛型委托講解

1. 泛型&#xff08;Generics&#xff09; 泛型允許編寫類型安全且可重用的代碼&#xff0c;避免裝箱拆箱操作&#xff0c;提高性能。 泛型類 // 定義泛型類 public class GenericList<T> {private T[] items;private int count;public GenericList(int capacity){items …

【DL學習筆記】DL入門指南

DL入門指南 資料課程 李沐老師 《動手學深度學習》 https://tangshusen.me/Dive-into-DL-PyTorch/李宏毅老師課程 https://speech.ee.ntu.edu.tw/~hylee/ml/2021-spring.php DL入門必掌握知識點 數據處理 &#xff1a; numpy、torch地址處理 &#xff1a; os、pathlib文件處…

在 uni-app 中進行路由跳轉前的權限驗證(檢查用戶是否登錄)

使用場景&#xff1a; 適用于需要登錄才能訪問的 uni-app 應用保護需要認證的頁面不被未授權用戶訪問統一處理路由跳轉的權限控制 /utils/cookies.js下的部分代碼內容&#xff1a; // #ifdef H5 import Cookies from js-cookie // #endif// ums const tokenKey user_center_to…

垃圾收集器ParNewCMS與底層三色標記算法詳解

垃圾收集技術詳解筆記 1. 分代收集理論 當前虛擬機的垃圾收集采用分代收集算法&#xff0c;根據對象存活周期將內存分為不同代區&#xff0c;以優化回收效率。 核心分區&#xff1a; 新生代&#xff08;Young Generation&#xff09;&#xff1a;對象存活周期短&#xff0c;約9…

全排列(回溯算法)

本文參考代碼隨想錄 給定一個 沒有重復 數字的序列&#xff0c;返回其所有可能的全排列。 示例: 輸入: [1,2,3] 輸出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ] 思路 排列是有序的&#xff0c;在排列問題中不需要startIndex&#xff1b;但排列問題需要一個…

在線任意長度大整數計算器

具體請前往&#xff1a;在線大整數計算器--支持超大整數的加減乘除,冪運算/模運算,最大公約數&#xff0c;最小公倍數

AT6668B芯片說明書

這顆北斗專用單芯片解決方案AT6668B&#xff0c;采用射頻前端與基帶處理一體化設計&#xff0c;集成北斗二號/三號雙模B1IB1C信號處理器。通過優化星歷解碼算法實現秒級衛星鎖定&#xff0c;配合硬件加速的干擾監測模塊&#xff0c;在電磁環境復雜的應用場景中仍可維持10Hz高頻…

谷歌Chrome瀏覽器安裝插件

因為google瀏覽器的應用市場(https://chrome.google.com/webstore/category/extensions)在國內無法訪問,所以無法在線安裝插件,這里提供開發者模式離線安裝插件的方法。 1、下載crx腳本 谷歌瀏覽器的插件離線文件的擴展名為:crx(Firefox火狐瀏覽器的插件擴展名為fpi)。…

【制造】erp和mes系統建設方案(word)

第一部分 概述 第二部分 方案介紹 第三部分 系統業務流程 3.1 關鍵需求概括分析 3.1.1 銷售管理方面 3.1.2 采購管理方面 3.1.3 倉庫管理方面 3.1.4 財務管理方面 3.1.5 人力資源方面 3.2 關鍵需求具體分析 3.2.1 財務管理 3.2.1.1會計憑證解決 3.2.1.2鈔票流…

Spring AI 系列之二十八 - Spring AI Alibaba-基于Nacos的prompt模版

之前做個幾個大模型的應用&#xff0c;都是使用Python語言&#xff0c;后來有一個項目使用了Java&#xff0c;并使用了Spring AI框架。隨著Spring AI不斷地完善&#xff0c;最近它發布了1.0正式版&#xff0c;意味著它已經能很好的作為企業級生產環境的使用。對于Java開發者來說…

IMAP電子郵件歸檔系統Mail-Archiver

簡介 什么是 Mail-Archiver &#xff1f; Mail-Archiver 是一個用于從多個 IMAP 賬戶歸檔、搜索和導出電子郵件的 web 應用程序。它提供了一種全面的解決方案&#xff0c;幫助用戶管理和存儲電子郵件。 主要特點 &#x1f4cc;自動歸檔&#xff1a;自動歸檔進出郵件&#xff…

李宏毅深度學習教程 第6-7章 自注意力機制 + Transformer

強烈推薦&#xff01;臺大李宏毅自注意力機制和Transformer詳解&#xff01;_嗶哩嗶哩_bilibili 目錄 1. 詞嵌入&問題情形 2. self-attention 自注意力機制 3. 自注意力的變形 3.1 多頭注意力&#xff08;multi-head&#xff09; 3.2 位置編碼 3.3 截斷自注意力&…

大模型幻覺的本質:深度=邏輯層次,寬度=組合限制,深度為n的神經網絡最多只能處理n層邏輯推理,寬度為w的網絡無法區分超過w+1個復雜對象的組合

大模型幻覺的本質&#xff1a;深度邏輯層次&#xff0c;寬度組合限制&#xff0c;深度為n的神經網絡最多只能處理n層邏輯推理&#xff0c;寬度為w的網絡無法區分超過w1個復雜對象的組合&#x1f9e9; "深度邏輯層次"具體含義&#x1f522; "寬度組合限制"具…