首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 更多程式設計知識

VBScript 取得外網 IP 並寄送郵件通知:CDO.Message 實作

     編輯:更多程式設計知識

功能流程

  1. 呼叫 ipseeker.cn 取得公網 IP。
  2. 使用 CDO.Message 透過 SMTP 發送郵件 (含 IP 內容)。
  3. 排程執行 (工作排程器) 實現 IP 變動通知。

完整程式碼

Function GetIPAddress()
    Dim Flag, Source
    Set GetIPObj = WScript.GetObject("https://ipseeker.cn/")
    Flag = 0
    For i = 1 To 10
        If GetIPObj.readyState = "complete" Then
            Flag = 1
            Exit For
        End If
        WScript.Sleep 500
    Next
    If Flag = 0 Then
        GetIPAddress = "Get IP Address Time Out ..."
    Else
        Source = GetIPObj.documentElement.innerText
        Set Rep = New RegExp
        Rep.Pattern = "(\d+)\.(\d+)\.(\d+)\.(\d+)"
        For Each result In Rep.Execute(Source)
            GetIPAddress = result
            Exit For
        Next
    End If
End Function

Function MailTo(MailAddress)
    Dim NameSpace, MailObject
    NameSpace = "https://schemas.microsoft.com/cdo/configuration/"
    Set MailObject = CreateObject("CDO.Message")
    MailObject.From = "your@21cn.com"
    MailObject.To = MailAddress
    MailObject.Subject = "IP Address Information"
    MailObject.Textbody = Now & ": " & GetIPAddress()

    MailObject.Configuration.Fields.Item(NameSpace & "sendusing") = 2
    MailObject.Configuration.Fields.Item(NameSpace & "smtpserver") = "smtp.21cn.com"
    MailObject.Configuration.Fields.Item(NameSpace & "smtpserverport") = 25
    MailObject.Configuration.Fields.Item(NameSpace & "smtpauthenticate") = 1
    MailObject.Configuration.Fields.Item(NameSpace & "sendusername") = "your_account"
    MailObject.Configuration.Fields.Item(NameSpace & "sendpassword") = "your_password"
    MailObject.Configuration.Fields.Update
    MailObject.Send
End Function

MailTo "target@qq.com"

CDO.Configuration 關鍵欄位對照

欄位值說明
sendusing2SMTP 網路傳送
smtpserversmtp.xxx.comSMTP 伺服器位址
smtpserverport25/465/587連接埠 (25/STARTTLS, 465/SSL, 587/Submission)
smtpauthenticate1基本驗證 (0=匿名, 1=基本, 2=NTLM)
sendusername帳號SMTP 登入帳號
sendpassword密碼SMTP 登入密碼

部署建議

  • 將腳本存為 ip_notify.vbs。
  • 建立 Windows 工作排程器任務:觸發條件「每日/每小時」,動作 cscript.exe ip_notify.vbs。
  • 帳號密碼請勿硬編碼,建議讀取加密設定檔或環境變數。
  • 支援 SSL (465) 需設定 smtpusessl = true (CDO 1.2.1+)。

來源

enun.net 原文

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved