獲取外網IP並傳送郵件通知

2021-05-23 13:46:04 字數 3187 閱讀 6284

源: http://www.ip138.com/ip2city.asp 格式: 您的ip位址是:[*]

事實上有效的ip源遠遠不知以上3個,只要填寫正確的格式串,幾乎所有可以顯示ip位址的網頁都可以成為本程式的ip源.

(7) 測試ip源: 可以在不修改配置的情況下,測試填入的ip源和格式,測試結果將顯示在日誌頁面.

(8) 檢測到ip位址改變後,傳送郵件通知: 選中該選項時,如果程式檢測的ip位址傳送改變,將會傳送電子郵件.

以下的幾個引數都是電子郵件相關的. 請注意填寫發件人和收件人時,請直接填寫郵件位址[email protected],而不要用類似帶<>的位址,如 "john"

另外,由於所有的配置資訊都是明文儲存在程式目錄的 settings.ini 中,所以您填寫的密碼也是不安全的.

ip位址通知器 v1.0 beta 還不支援使用安全套接字的smtp郵箱,比如 gmail.com, 給您造成的不便敬請諒解.

經過測試在2010/11/10時郵箱的smtp伺服器有 smtp.sina.com.cn 和 smtp.163.com

(9) 檢測到ip位址改變後,儲存檔案,並以之為引數執行一下命令: 如果選中該項,程式在報告ip位址時,會先把ip位址在當前目錄下儲存為乙個檔名為

"ip.txt" 的unicode編碼的文字檔案,並一該檔案路徑為引數呼叫指定的命令, 如果指定的命令為空,那麼只儲存檔案.

2. 日誌頁面: 顯示程式執行過程中的輸出資訊.最多只能儲存30000個字元,如果超出,將刪除前面200行.

3. 主頁面

(1) 清空日誌.

(2) 清除已記錄的ip: 程式在報告ip位址成功後(以下情況將被視為報告ip位址成功: 郵件傳送成功或者執行命令成功或者使用者不要求報告ip位址即 1.(8)

和 1.(9) 兩個選項都未選中.)將記錄下這個ip位址,並顯示為視窗標題和氣泡提示. 如果報告失敗,比如在只選中傳送郵件選項的情況下,並且郵件傳送失敗.

那麼程式顯示的ip位址將不是最新的ip,而是上一次成功報告過的ip,也就是說,在這種情況下,程式顯示的結果和郵件顯示的結果是一致的. "清除已記錄的ip"

按鈕將會把這個值設定為 0.0.0.0.

(3) 執行/停止: 執行後,會立即抓取一次ip,並設定定時器. 關閉時,只會取消定時器,如果此時程式正在抓取ip或者傳送郵件將會繼續完成.

(4) 退出.

---------------------------

程式執行的介面如下:

版本更新說明

2010-11-13 v1.01 beta

修正: 在只選中郵件通知的情況下,一旦郵件傳送失敗,也會儲存ip位址到本地. 這樣的話,使用者將沒辦法接收到最新的ip位址通知郵件.

修正: 不能正確識別utf-16編碼的ip源.

修正: 程式內部轉換字元編碼時有棧溢位的風險,現在使用堆分配.

新增: 現在可以識別utf-8編碼的ip源.

更新說明: 氣泡提示只在windows xp以上的系統中有效果.

2010-11-15 v1.02 正式版

更新說明: "總是報告ip位址" 改為 "ip沒變也報告" 更容易理解.

2010-12-13 v1.04 正式版

更新: 啟用新的日誌系統,並移除,修改了一些日誌文字.

新增: 現在smtp密碼以密文的形式儲存在配置檔案中. (密文由原始密碼進過des 和 base64變換後得到.) (更新後,需要重新輸入smtp密碼.)

更新: 測試郵件和ip改變通知郵件的內容修改以更清晰的表述測試郵件和真實的ip通知郵件之間的區別.

更新: 現在郵件的主題中包含了主機名.

修正: 使用新的user-agent傳送http請求以獲取更多的ip源支援. user-agent: ipnotifier/1.04 (compatible; msie 8.00; firefox 3.6; u; windows;)

新增測試過的ip源:

源: http://www.showipaddress.com/ 格式:

源: http://www.ipaddresslocation.org/ 格式:  /r/nb/r/n*/r/n309e/r/n

源: http://www.find-ip-address.org/ 格式: ip address lookup - ip finder for my ip (wan ip) *

源: http://www.123myip.co.uk/ 格式:

源: http://www.ipaddressworld.com/ 格式: *

2010-12-17 v1.22 正式版

修正:  現在可以正確識別採用 chunked 分段編碼的ip源.

修正:  源: http://www.ipaddresslocation.org/ 的格式修正為:  *

修正:  允許處理的最大源資料200k的臨界情況下,陣列越界bug已經被修正.

後記在除錯的時候發現有時候會出現 "ip源返回 [http 0]" 的日誌, 按照http協議,伺服器響應碼應該是3個數字,從1xx到5xx,不允許出現0.這個問題困擾了我幾天,因為非常難重現,從**又看不出什麼問題. 最後加了幾行**,把http = 0 的時候的記憶體現場儲存到檔案, 有守了好久終於抓到一次http=0的情況,一看檔案才知道是電信插廣告到響應流中,把響應頭改得亂七八糟引起的. 雖然對程式沒有影響,但是,中國電信!

由於v1.04版作了比較多的修改,當時就應該把版本好公升上去,所以在最後一次修改中把版本號公升級到了1.2

經過這次修正後,ipnotifier將暫告一段落, 如果沒有重大的bug我將不再更新.

2011-06-21 v1.24 ( 感謝網友 fugou 的建議 )

更新: 預設的ip源改為: http://www.ip138.com/ip2city.asp 格式: 您的ip位址是:[*]

新增: 現在可以自定義通知郵件的內容, 用 @hostname 代表主機名, 用 @oldip 代表上一次的ip位址, 用 @newip 代表最新獲得的ip位址.

2011-7-29 v1.26 (感謝網友 fugou, nanchang_key 的建議 )

新增: 現在可以自定義通知郵件的主題,用 @hostname 代表主機名, 用 @oldip 代表上一次的ip位址, 用 @newip 代表最新獲得的ip位址.

新增: 現在可以設定多個收件人,收件人郵件位址用 [,] 或者 [;] 分隔,例如: [***@***.com,[email protected];[email protected]]

自動獲取外網IP並發郵件

最近做 充值業務,需要電腦一直掛著。但是作為上班族,在公司電腦上裝這裝那的,實在不合適。於是想通過遠端桌面控制家裡電腦,於是 業餘專案 就來了。首先,明確目標 使用一切已有資源,盡可能簡單的 安全的實現遠端控制。需求分析 1。簡單的需求 遠端桌面 2。安全的需求 路由器自帶防火牆擋一擋,更改3389...

python3 自動獲取公網ip並傳送郵件通知

花了兩天時間,寫好乙個指令碼,在樹莓pi 啟動的時候,自動傳送郵件通知,並且在後台獲得公網ip,通過郵件通知。測試完成。接著想要,加入日誌,以及改進郵件傳送的過程。先上原始碼吧。coding gbk import smtplib import re import urllib.request imp...

python獲取本地IP位址傳送郵件

usr bin env python coding utf 8 import time import socket import fcntl import struct import smtplib from email.mime.text import mimetext def get ip ad...