国内IPのブロック、アクセスには本人確認が必要
国内IPをブロックしたい海外貿易サイトがありますが、特定の国内ユーザーにアクセスを許可する管理が必要なので、本人確認を行う必要があります。関数?これは私の最初の投稿です、もっと注目してください!ありがとう!
-----解決策--------------------------------
ユーザーがアクセスするときに、
1. ユーザーの IP を取得します。
2. 次に、オープン IP インターフェイスに移動して、ユーザーの地理的位置を照会します (Sina、NetEase、など)。 ip138、すべてオープン IP クエリ インターフェイスを備えています)
3. ユーザーの地理的位置に基づいて、ユーザーをブロックするか検証するかを決定できます。
------解決策---------
関数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>