ホームページ  >  記事  >  バックエンド開発  >  PHP を使用して IP アドレスの場所をクエリする方法

PHP を使用して IP アドレスの場所をクエリする方法

青灯夜游
青灯夜游転載
2022-10-17 14:05:455251ブラウズ

PHP が IP アドレスの場所をクエリする手順: 1. IP アドレスの場所インターフェイス サービスを開き、インターフェイス リクエスト キーを取得します; 2. インターフェイス API を呼び出してリクエストを作成し、IP アドレスが割り当てられている領域をクエリしますクエリされた IP アドレスに基づいて属します ; 3. juheHttpRequest() をカスタマイズして、要求インターフェイスによって返されたコンテンツを取得します。

PHP を使用して IP アドレスの場所をクエリする方法

このチュートリアルの動作環境: Windows 7 システム、PHP バージョン 8.1、DELL G3 コンピューター

IP アドレスの所有権を確認するにはどうすればよいですか?次の記事では、PHP を使用して IP アドレスの場所をクエリする方法を紹介します。

PHP が IP アドレスをクエリする手順:

1. インターフェイスを開きます

P アドレス アトリビューション インターフェイス サービスで使用される集約データによって提供される無料インターフェイスは、https://www.juhe.cn/docs/api/id/1?s=cpphpcn を通じて登録およびアクティブ化できます。

2. クエリされた IP アドレスに基づいて、その IP が属するエリアをクエリします。

// 接口请求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. によって返されたコンテンツをリクエストします。インターフェイス

/**
 * 请求接口返回内容
 * @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;
}

推奨学習: 「PHP ビデオ チュートリアル

以上がPHP を使用して IP アドレスの場所をクエリする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はsdk.cnで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。