python3製作簡單ip提取器
python3製作簡單的ip提取腳本
這裡先介紹一下任務,前一段時間布置下來一項任務,給一個ip文檔,將其中山西省的ip篩選出來,要兩周內完成任務。由於接下來兩周的電工實習,實習完又是各種考試,導致任務一直沒時間進行,直到放假了才有多餘的時間來做這項任務。下面是我做的筆記簡單介紹,不懂的地方歡迎留言!
準備環境python3,win10系統,當然linux更好,win下需要安裝reuqests模塊(調用第三方介面進行ip歸屬地查詢需要發起請求)
我這裡調用阿里的第三方介面進行IP歸屬地查詢,介面地址
介面描述
這裡大概介紹一下思路,讀取文件,定義函數,進行循環,發起請求,接收參數,判斷,篩選並寫入文件,完成。
運行python文件先寫頭文件格式,告訴系統運行python3的代碼,並且以utf-8編碼
運行代碼結果如下,初步判斷代碼應該沒問題
C:Users92039Desktop>python 2.py
test
此處代碼是按照介面返回的json的格式來寫的
C:Users92039Desktop>python 2.py
山西省
測試成功
即便Python程序的語法是正確的,在運行它的時候,也有可能發生錯誤。運行期檢測到的錯誤被稱為異常。大多數的異常都不會被程序處理,而是以錯誤形式展現
這時候就要進行異常處理
引入try/except
C:Users92039Desktop>python 5.py
異常: division by zero
如果未做異常處理將直接報錯,導致程序無法繼續執行部
C:Users92039Desktop>python 2.py
山西省
接下來加入if判斷
然後需要加入打開文件部分的代碼
當做文件處理時,需要獲取一個文件句柄,從文件中讀取數據,然後關閉文件句柄。
這裡有兩個問題。一是可能忘記關閉文件句柄;二是文件讀取數據發生異常,沒有進行任何處理
然而with可以很好的處理上下文環境產生的異常
ips.txt中寫入了3個ip
運行結果
C:Users92039Desktop>python 3.py
222.31.41.253
202.12.15.52
61.135.169.121
將該模塊加入到代碼中
C:Users92039Desktop>python 2.py
222.31.41.253
222.31.41.253
202.12.15.52
61.135.169.121
因為有兩次輸出,屬於山西省的ip會列印兩次,由運行結果可知只有第一個ip屬於山西省
接下來要加入寫入文件的模塊,將屬於山西省的ip全部寫入一個文件
運行腳本後
1
2
3
4
a
a
a
a
a
補充一下文件操作的知識
文件打開模式
r ,只讀模式【默認模式,文件必須存在,不存在則拋出異常】
將寫入文件的2行代碼加入
運行腳本
會在桌面創建一個a.txt文檔,結果為
222.31.41.253
這是一個簡單的ip提取器,沒有加入多線程,我是python小白,很多地方還不了解,在寫這個腳本時候讀取文件和寫入文件都是直接去百度上現學現買的,不完美之處歡迎大家提出!
歡迎關注網路空間安全公眾號:
TAG:全球大搜羅 |