首頁 後端開發 php教程 屏蔽国内IP,访问需要进行身份验证解决思路

屏蔽国内IP,访问需要进行身份验证解决思路

Jun 13, 2016 pm 01:33 PM
empty location quot tmp

屏蔽国内IP,访问需要进行身份验证
有一外贸网站想屏蔽国内IP,但我们自己需要管理和允许特定的国内用户访问所以要进行身份验证,请问这样的功能要怎样实现呢?第一次发帖,请大家多关注!谢谢!

------解决方案--------------------
可以做个页面,在用户访问时,
1.获取用户的IP
2.然后到开放的IP接口去查询用户的地理位置(例如新浪、网易、ip138,都有开放的ip查询接口)
3.有了用户的地理位置,再决定是屏蔽之,还是验证之
------解决方案--------------------

PHP code

function sina($ip)
{
    $php_runtime = microtime(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))
        return $location;
    else
        return false;
}
<br><font color="#e78608">------解决方案--------------------</font><br>通过用户来访的IP地址可以算出该IP属于哪个子网,如110.80.0.0/13<br>将全中国可划分的子网存在一个数组中,判断是否在这个数组中就行了。<br><br>不需要再去其他接口查询地址,然后根据地址或运营商的名字来判断,反而麻烦。<br>PS:这个数组不大,不到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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1670
14
CakePHP 教程
1428
52
Laravel 教程
1329
25
PHP教程
1274
29
C# 教程
1256
24
/tmp/資料夾在Linux系統中的清理原理及tmp檔案的作用 /tmp/資料夾在Linux系統中的清理原理及tmp檔案的作用 Dec 21, 2023 pm 05:36 PM

.tmp檔案大部分都是因為不正常關機、或死機後所留下的文件,這些臨時的暫存盤,在你重新開機後,已經沒有任何的用途,可以放心刪除。大家在使用Windows作業系統的時候,可能會常在C盤根目錄發現一些後綴名為TMP的文件,也會在Windows目錄裡發現一個TEMP的目錄,TMP檔案是各種軟體或系統產生的暫存文件,也就是常說的垃圾檔案。 Windows產生的臨時文件,本質上和虛擬記憶體沒什麼兩樣,只不過臨時文件比虛擬記憶體更具針對性,單獨為某個程式服務而已。而它的專一性導致了許多新手對他望而生畏,不刪佔

如何在CentOS 7中存取並清理/tmp目錄中的垃圾檔案? 如何在CentOS 7中存取並清理/tmp目錄中的垃圾檔案? Dec 27, 2023 pm 09:10 PM

centos7系統中tmp目錄下有很多垃圾,想要清除垃圾,該怎麼清除呢?下面我們就來看看詳細的教學。查看tmp檔案目錄下檔案列表,執行指令cdtmp/切換到tmp目前檔案目錄,執行ll指令,查看目前目錄下檔列表。如下圖所示。使用rm刪除檔案指令,需要注意的是rm指令是將檔案永遠從系統中刪除,因此建議在使用rm指令時,最好是在刪除檔案前給予提示。使用指令rm-i檔名,等用戶確認刪除(y)或跳過刪除(n),系統進行對應的操作。如下圖所示。

linux中tmp什麼意思 linux中tmp什麼意思 Mar 10, 2023 am 09:26 AM

linux中tmp指的是儲存臨時檔案的資料夾,該資料夾包含系統和使用者建立的暫存檔案;tmp資料夾的預設時限是30天,30天不存取的tmp下的檔案會被系統自動刪除的。

TmP是什麼檔案? TmP是什麼檔案? Dec 25, 2023 pm 03:39 PM

「tmp」檔案是臨時文件,通常由作業系統或程式在運行過程中產生,用於儲存臨時資料或程式運行時的中間結果。這些檔案主要用於幫助程式順利執行,但它們在程式執行完畢後通常會自動刪除。 tmp檔案通常可以在Windows系統的C盤根目錄下找到。然而,tmp檔案與特定應用程式或系統有關,因此它們的具體內容和用途可能因應用程式而異。

PHP判斷某個數組中是否存在指定的key PHP判斷某個數組中是否存在指定的key Mar 21, 2024 pm 09:21 PM

這篇文章將為大家詳細講解有關PHP判斷某個數組中是否存在指定的key,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章後可以有所收穫。 PHP判斷某個陣列中是否存在指定的key:在php中,判斷某個陣列中是否存在指定的key的方法有多種:1.使用isset()函數:isset($array[&quot;key&quot;])此函數傳回布林值,如果指定的key存在,則傳回true,否則傳回false。 2.使用array_key_exists()函數:array_key_exists(&quot;key&quot;,$arr

tmp是什麼文件 tmp是什麼文件 Feb 22, 2023 pm 02:35 PM

tmp是各種軟體或系統產生的臨時文件,也就是常說的垃圾文件。通常,建立臨時檔案的程式會在完成時將其刪除,但有時這些檔案會被保留。臨時文件被保留的原因可能有多種:程式可能在完成安裝前被中斷,或在重新啟動時崩潰;對於這些文件,一般沒有什麼使用價值,我們可以直接將其刪除。

Nginx伺服器中location設定實例分析 Nginx伺服器中location設定實例分析 May 24, 2023 pm 02:05 PM

首先我來大概的介紹一下location的種類和匹配規則,以nginxwiki的例子做說明:location=/{#matchesthequery/only.[configurationa]}location/{#matchesanyquery,sinceallqueriesbeginwith/,butregular#expressionsandanylongerconventionalbloblobblobaddaldfcksirbe. configurationb]}location^~/im

nginx location中uri的截取如何實現 nginx location中uri的截取如何實現 May 18, 2023 pm 12:07 PM

說明:location中的root和aliasroot指令只是將搜尋的根設定為root設定的目錄,即不會截斷uri,而是使用原始uri跳轉該目錄下查找文件aias指令則會截斷匹配的uri,然後使用alias設定的路徑加上剩餘的uri作為子路徑進行查找location中的proxy_pass的uri如果proxy_pass的url不帶uri如果尾部是"/",則會截斷匹配的uri如果尾部不是"/",則不會截斷匹配的uri如果proxy_pass的url帶uri

See all articles