採用詞法分析擷取網域名稱和IP
背景
在分析日誌的時候發現有些日誌中參數包含其他的URL,例如:
提取請求參數中的URL(xss.ha.ckers.org),再對比威脅情報資料庫,如果命中黑名單直接標黑。如果不在黑名單,也不在公司的白名單裡可以先做個標記,後續著重分析。
提取URL
關於URL的提取網路上有很多文章,大部分都是使用正規表示式,方法簡單但是不太準確。我在這裡提供一個方法:採用詞法分析,提取網域和IP。想法借鑒了這篇文章:https://blog.csdn.net/breaksoftware/article/details/7009209,有興趣的可以去看看,事實證明跟著大神確實漲姿勢。
原文是用C 版本,這裡我用Python寫了一個類似的,供大家參考。
常見的URL分類
觀察可以見得:IP形式的URL結構最為簡單:4個小於255的數字被.分割;domain形式比較複雜,但是它們有共通點:都具有頂級域名.com。
定義合法字元:
頂級網域清單:
網域形式擷取:如www.baidu.com
。
IP形式擷取:如192.168.1.1。
while (i < len(z) and z[i].isdigit()): i = i + 1 ip_v1 = True reti = i if i < len(z) and z[i] == '.': i = i + 1 reti = i else: tokenType = TK_OTHER reti = 1while (i < len(z) and z[i].isdigit()): i = i + 1 ip_v2 = True if i < len(z) and z[i] == '.': i = i + 1 else: if tokenType != TK_DOMAIN: tokenType = TK_OTHER reti = 1while (i < len(z) and z[i].isdigit()): i = i + 1 ip_v3 = True if i < len(z) and z[i] == '.': i = i + 1 else: if tokenType != TK_DOMAIN: tokenType = TK_OTHER reti = 1while (i < len(z) and z[i].isdigit()): i = i + 1 ip_v4 = True if i < len(z) and z[i] == ':': i = i + 1 while (i < len(z) and z[i].isdigit()): i = i + 1 if ip_v1 and ip_v2 and ip_v3 and ip_v4: self.urls.append(z[0:i]) return reti, tokenType else: if tokenType != TK_DOMAIN: tokenType = TK_OTHER reti = 1
混合形式擷取:如1234.com。
掃描前半部1234,符合IP形式的特徵,但是發現代碼會報異常,所以需要IP處理代碼段添加判斷:判斷後綴是否是頂級域名:
結果測試
測試資料:
運行結果:
https://github.com/skskevin/UrlDetect/blob/master/tool/domainExtract/domainExtract.py
以上是採用詞法分析擷取網域名稱和IP的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

一、黑/白名單IP限制存取配置nginx配置黑白名單有好幾種方式,這裡只介紹常用的兩種方法。 1.第一種方法:allow、denydeny和allow指令屬於ngx_http_access_module,nginx預設載入此模組,所以可直接使用。這種方式,最簡單,最直接。設定類似防火牆iptable,使用方法:直接設定檔中新增:#白名單設置,allow後面為可存取IPlocation/{allow123.13.123.12;allow23.53.32.1/100;denyall;}#黑名單設置,

ip與mac綁定是指將特定的IP位址與特定的MAC位址關聯起來,使得只有使用該MAC位址的設備才能夠使用該IP位址進行網路通訊。 ip與mac綁定可以防止被綁定的主機的IP位址不被假冒,前提條件:1、MAC位址是唯一的,且不可假冒;只能綁定與路由器直接相連的網路上的主機(也就是主機的網關在路由器上)。

在TCP/IP協定套件中,網域名稱系統是提供電腦名稱到IP位址對映名稱解析服務的協定之一。但是,有時它會發生故障,從而導致錯誤,例如請求的控制權對此服務NETHELPMSG2191無效。 DNS用戶端和伺服器協同工作,為電腦和使用者提供電腦名稱到IP位址對映名稱解析服務。安裝Windows後,客戶端和伺服器版本的作業系統預設啟用客戶端服務。一旦您在TCP/IP網路配置中指定了伺服器的IP位址,DNS用戶端就會查詢伺服器以發現網域控制站並將電腦名稱解析為IP位址。只有在服務

1.設定目錄白名單:對指定請求路徑不設定限制,如對請求路徑為api目錄下的請求不做限制,則可寫為server{location/app{proxy_passhttp://192.168.1.111:8095/app ;limit_connconn20;limit_rate500k;limit_reqzone=fooburst=5nodelay;}location/app/api{proxy_passhttp://192.168.1.111:8095/app/api}}#因比率

微信查看ip位址的方法:1、登入電腦版微信,右鍵點選螢幕下方的工作欄,點選「工作管理員」;2、彈出工作管理員時,點選左下角的「詳細資料」;3、工作管理器進入“性能”選項,點擊“打開資源監視器”;4、選擇“網絡”,勾選微信進程“Wechat.exe”;5、點擊下面的“TCP連接”即可監視微信網絡IP相關情況,發送訊息得到回覆就會顯示他人的IP位址。

很多時候,非常大的文件很難在設備之間共享,尤其是智慧型手機等。因此,這些文件首先被存檔/壓縮成RAR文件,然後發送到另一個設備進行共用。但問題是RAR檔案不容易在iPhone上提取。要提取zip文件,只需輕點一下即可。沒有多少人知道在iPhone上提取RAR檔案的過程,對於初學者來說,這些步驟可能會令人困惑。可以使用iPhone上稱為快捷方式的預設應用程式來完成此操作。我們在這裡逐步解釋如何使用快捷方式應用程式在iPhone上提取任何RAR檔案。如何在iPhone上提取RAR檔案步驟1:首先,您

概念:uv(uniquevisitor):獨立訪客,將每台獨立上網電腦(以cookie為依據)視為一位訪客,一天之內(00:00-24:00),造訪您網站的訪客數量。一天之內相同cookie的訪問只被計算1次pv(pageview):訪問量,即頁面瀏覽量或點擊量,用戶每次對網站的訪問均被記錄1次。用戶對同一頁面的多次訪問,訪問量值累計統計獨立ip:00:00-24:00內相同ip地址只被計算一次,做網站優化的朋友最關心這個先聲明下環境,此次運行的nginx版本1.7,後端tomcat運行的是動

wifi顯示無ip分配的解決方案:1、重新啟動設備和路由器,關閉設備上的Wi-Fi連接,關閉設備,關閉路由器,等待幾分鐘,然後重新打開路由器鏈接wifi;2、檢查路由器設置,重啟DHCP,確保DHCP功能已啟用;3、重置網路設置,將刪除所有已儲存的WiFi網路和密碼,在執行此操作之前,請確保已備份;4、更新路由器韌體,登入路由器管理介面,查找韌體更新選項,並按照提示進行操作。
