ホームページ  >  記事  >  バックエンド開発  >  国内 IP をブロックし、アクセスに本人確認を要求するソリューションのアイデア。

国内 IP をブロックし、アクセスに本人確認を要求するソリューションのアイデア。

WBOY
WBOYオリジナル
2016-06-13 13:33:361449ブラウズ

国内IPのブロック、アクセスには本人確認が必要
国内IPをブロックしたい海外貿易サイトがありますが、特定の国内ユーザーにアクセスを許可する管理が必要なので、本人確認を行う必要があります。関数?これは私の最初の投稿です、もっと注目してください!ありがとう!

-----解決策--------------------------------
ユーザーがアクセスするときに、
1. ユーザーの IP を取得します。
2. 次に、オープン IP インターフェイスに移動して、ユーザーの地理的位置を照会します (Sina、NetEase、など)。 ip138、すべてオープン IP クエリ インターフェイスを備えています)
3. ユーザーの地理的位置に基づいて、ユーザーをブロックするか検証するかを決定できます。
------解決策---------

PHP コード

関数sina($ip)
{
    $php_runtime = マイクロタイム(TRUE);
    $str = file_get_contents("http://int.dpool.sina.com.cn/iplookup/iplookup.php?ip=".$ip);
    $tmp =explode(" ",$str);
    (isset($tmp[4]) && !empty($tmp[4])) ? $location['country'] = $tmp[4] : $location['country'] = null;
    (isset($tmp[5]) && !empty($tmp[5])) ? $location['city'] = $tmp[5] : $location['city'] = null;
    (empty($tmp[6]) || !preg_match("/电/",$str) || !preg_match("/通/",$str)) $location['sp'] = $tmp[ 7] : $location['sp'] = $tmp[6];

    $location['time'] = microtime(TRUE) - $php_runtime;
    if(!empty($location))
        $location を返します。
    それ以外
        false を返します。
}
<br><font color="#e78608">------解決策---------</font><br>IP は、次の IP アドレスに基づいて計算できます。ユーザーの訪問がどのサブネットに属しているか、110.80.0.0/13<br> など、中国で分割できるサブネットを配列に格納し、この配列にあるかどうかを判断するだけです。 <br><br>他のインターフェースに行ってアドレスを問い合わせて、アドレスやオペレーター名から判断するという煩わしさがありません。 <br>追記: この配列はそれほど大きくなく、アイテム数は 800 個未満です。 <br><br>変換方法については、こちらのページをご覧ください: http://url.cn/0TCFrY 分割可能な中国全サブネットのExcelダウンロードを添付します<br><br>
<br><font color="#e78608">------解決策---------</font><br>ftp://ftp.apnic.net/ public /apnic/stats/apnic/delegated-apnic-latest<br><br>apnic|CN|ipv4|180.212.0.0|131072|20091001|allocated<br><br>これを分析して抽出します。 IP <div class="clear"></div>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。