Home  >  Article  >  Backend Development  >  How to use PHP to query the location of an IP address

How to use PHP to query the location of an IP address

青灯夜游
青灯夜游forward
2022-10-17 14:05:455252browse

Steps for PHP to query the IP address location: 1. Open the IP address location interface service and obtain the interface request key; 2. Call the interface API to make a request and query the area to which the IP belongs based on the queried IP address. ; 3. Customize juheHttpRequest() to obtain the content returned by the request interface.

How to use PHP to query the location of an IP address

The operating environment of this tutorial: Windows 7 system, PHP version 8.1, DELL G3 computer

How to check the IP address ownership? The following article will introduce to you how to use PHP to query the location of the IP address.

Steps for PHP to query the IP address:

1. Open the interface

P The free interface provided by the aggregated data used by the address attribution interface service can be registered and activated through https://www.juhe.cn/docs/api/id/1?s=cpphpcn.

2. Based on the queried IP address, query the area to which the IP belongs.

// 接口请求Key,可以通过https://www.juhe.cn/docs/api/id/1免费申请开通
$appkey = "*********************";

//根据查询的IP地址,查询该IP所属的区域
$url = "http://apis.juhe.cn/ip/ipNew";
$params = [
    "ip" => "112.112.11.11",//需要查询的IP地址或域名
    "key" => $appkey,//应用APPKEY(应用详细页查询)
];
$paramstring = http_build_query($params);
$content = juheHttpRequest($url, $paramstring, 1);
$result = json_decode($content, true);
if ($result) {
    if ($result['error_code'] == 0) {
        echo "国家:{$result['result']['Country']}" . PHP_EOL;
        echo "省份:{$result['result']['Province']}" . PHP_EOL;
        echo "城市:{$result['result']['City']}" . PHP_EOL;
        echo "运营商:{$result['result']['Isp']}" . PHP_EOL;
    } else {
        echo "{$result['error_code']}:{$result['reason']}" . PHP_EOL;
    }
} else {
    echo "请求失败";
}

3. Request the content returned by the interface

/**
 * 请求接口返回内容
 * @param string $url [请求的URL地址]
 * @param string $params [请求的参数]
 * @param int $ipost [是否采用POST形式]
 * @return  string
 */
function juheHttpRequest($url, $params = false, $ispost = 0)
{
    $httpInfo = array();
    $ch = curl_init();

    curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
    curl_setopt($ch, CURLOPT_USERAGENT, 'JuheData');
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);
    curl_setopt($ch, CURLOPT_TIMEOUT, 5);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 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) {
        //echo "cURL Error: " . curl_error($ch);
        return false;
    }
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    $httpInfo = array_merge($httpInfo, curl_getinfo($ch));
    curl_close($ch);
    return $response;
}

Recommended learning: "PHP Video Tutorial"

The above is the detailed content of How to use PHP to query the location of an IP address. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:sdk.cn. If there is any infringement, please contact admin@php.cn delete