自動獲取外網IP并發郵件
問題:
公司有一Web系統需開放給香港Office公司查詢資料,但最近動態域名需實名認證,
因系統較小型,非公開大範圍使用,所以再認證一域名也沒多大必要,
所以想定時生成一封能查詢外網IP的郵件發送給相關同事。
方案:
1.新建一個VBS文件用來獲取IP和發送郵件:

1 On Error Resume next 2 3 Set objEmail=CreateObject("CDO.Message") 4 5 Call SendMail() 6 7 Sub SendMail 8 Url="http://www.ip138.com/ips1388.asp" 'https://www.baidu.com/s?wd=ip 9 Set NP = Createobject("Microsoft.XMLHTTP") 10 NP.Open "GET", url, False 11 NP.Send 12 Data=NP.responsebody 13 Set NP = Nothing 14 Data = bytes2BSTR(Data) 15 Here = InstrRev(Data, "ip138.com IP", -1,0) 16 Data = Mid(Data,Here+83,17) 17 Data = Replace(Data, "[","") 18 Data = Replace(Data, "]","") 19 Data = Replace(Data, " ","") 20 Data="This mail send from : " & Data & "." & vbcrlf & "You may use this: http://" & Data & ":8080/MISWeb" & vbCrlf & "Bruce " & Now & vbCrlf 21 'WSH.Echo Data 22 23 objEmail.From="xxx@c-c-l.com.hk" 'Sender 24 objEmail.To="yyy@c-c-l.com.hk" 'Receiver:mtho@c-c-l.com.hk 25 objEmail.Subject="This Mail Only used to Get CCL Factory IP" 'Subject 26 objEmail.Textbody=Data 27 CreateObject("Scripting.FileSystemObject").OpenTextFile("CCLFactoryIP.txt",8,1) _ 28 .Write Data 29 'WSH.Echo Now & ": " & Data 30 objEmail.Configuration.Fields.Item _ 31 ("http://schemas.microsoft.com/cdo/configuration/sendusing")=2 32 objEmail.Configuration.Fields.Item _ 33 ("http://schemas.microsoft.com/cdo/configuration/smtpserver")="ppp.com" 'SMTP Server Address 34 objEmail.Configuration.Fields.Item _ 35 ("http://schemas.microsoft.com/cdo/configuration/sendusername")="qqq" 'Username 36 objEmail.Configuration.Fields.Item _ 37 ("http://schemas.microsoft.com/cdo/configuration/sendpassword")="zzz" 'Password 38 objEmail.Configuration.Fields.Item _ 39 ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate")=1 'Password use Text 40 objEmail.Configuration.Fields.Item _ 41 ("http://schemas.microsoft.com/cdo/configuration/smtpserverport")=25 'Smtp Port 42 objEmail.Configuration.Fields.Update 43 objEmail.Send 44 End Sub 45 Function bytes2BSTR(vIn) 46 strReturn = "" 47 For i = 1 To LenB(vIn) 48 ThisCharCode = AscB(MidB(vIn,i,1)) 49 If ThisCharCode < &H80 Then 50 strReturn = strReturn & Chr(ThisCharCode) 51 Else 52 NextCharCode = AscB(MidB(vIn,i+1,1)) 53 strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode)) 54 i = i + 1 55 End If 56 Next 57 bytes2BSTR = strReturn 58 End Function
2.在Win系統設置定時任務:
Win10: 開始->Windows管理工具->任務計劃程序,操作->創建基本任務,輸入名稱,設定每周一到周五8:58開始,每一小時運行一次,持續8小時。
3.測試完全OK。
【轉載請註明來源】
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义