亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > VBScript > 正文

使用vbs獲得外網ip并發送到郵箱里

2020-06-26 18:36:00
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了使用vbs獲得外網ip并發送到郵箱里,需要的朋友可以參考下
 

  

復制代碼代碼如下:

'* **************************************** *  
'* 程序名稱:GetIP.vbs  
'* 程序說明:獲得本地外網地址并發送到指定郵箱  
'* 編碼:lyserver    
'* **************************************** * 

 

Option Explicit  

Call Main '執行入口函數  

'- ----------------------------------------- -  
' 函數說明:程序入口  
'- ----------------------------------------- -  
Sub Main()  
    Dim objWsh  
    Dim objEnv  
    Dim strNewIP, strOldIP  
    Dim dtStartTime  
    Dim nInstance  

    strOldIP = ""  
    dtStartTime = DateAdd("n", -30, Now) '設置起始時間  

    '獲得運行實例數,如果大于1,則結束以前運行的實例  
    Set objWsh = CreateObject("WScript.Shell")  
    Set objEnv = CreateObject("WScript.Shell").Environment("System")  
    nInstance = Val(objEnv("GetIpToEmail")) + 1 '運行實例數加1  
    objEnv("GetIpToEmail") = nInstance  
    If nInstance > 1 Then Exit Sub '如果運行實例數大于1則退出,以防重復運行  

    '開啟遠程桌面  
    'EnabledRometeDesktop True, Null  

    '在后臺連續檢測外網地址,如果有變化則發送郵件到指定郵箱  
    Do  
        If Err.Number <> 0 Then Exit Do  
        If DateDiff("n", dtStartTime, Now) >= 30 Then '半小時檢查一次IP  
            dtStartTime = Now '重置起始時間  
            strNewIP = GetWanIP '獲得本地的公網IP地址  
            If Len(strNewIP) > 0 Then  
                If strNewIP <> strOldIP Then '如果IP發生了變化則發送  
                    SendMail "發信人郵箱@sina.com", "密碼", "收信人郵箱@sina.com", "路由器IP", strNewIP '發送IP到指定郵箱  
                    strOldIP = strNewIP '重置原來的IP  
                End If  
            End If  
        End If  
        WScript.Sleep 2000 '延時2秒,以釋放CPU資源  
    Loop Until Val(objEnv("GetIpToEmail")) > 1  
    objEnv.Remove "GetIpToEmail" '清除運行實例數變量  
    Set objEnv = Nothing  
    Set objWsh = Nothing  

    MsgBox "程序被成功終止!", 64, "提示"  
End Sub  

'- ----------------------------------------- -  
' 函數說明:開啟遠程桌面  
' 參數說明:blnEnabled是否開啟,True開啟,False關閉  
'           nPort遠程桌面的端口號,默認為3389  
'- ----------------------------------------- -  
Sub EnabledRometeDesktop(blnEnabled, nPort)  
    Dim objWsh  

    If blnEnabled Then  
        blnEnabled = 0 '0表示開啟  
    Else  
        blnEnabled = 1 '1表示關閉  
    End If  

    Set objWsh = CreateObject("WScript.Shell")  
    '開啟遠程桌面并設置端口號  
    objWsh.RegWrite "HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Terminal Server/fDenyTSConnections", blnEnabled, "REG_DWORD" '開啟遠程桌面  
    '設置遠程桌面端口號  
    If IsNumeric(nPort) Then  
        If nPort > 0 Then  
            objWsh.RegWrite "HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Terminal Server/Wds/rdpwd/Tds/tcp/PortNumber", nPort, "REG_DWORD"  
            objWsh.RegWrite "HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Terminal Server/WinStations/RDP-Tcp/PortNumber", nPort, "REG_DWORD"  
        End If  
    End If  
    Set objWsh = Nothing  
End Sub  

'- ----------------------------------------- -  
' 函數說明:獲得公網IP  
'- ----------------------------------------- -  
Function GetWanIP()  
    Dim nPos  
    Dim objXmlHTTP  

    GetWanIP = ""  
    On Error Resume Next  
    '創建XMLHTTP對象  
    Set objXmlHTTP = CreateObject("MSXML2.XMLHTTP")  

    '導航至http://www.ip138.com/ip2city.asp獲得IP地址   
    objXmlHTTP.open "GET", "http://iframe.ip138.com/ic.asp", False  
    objXmlHTTP.send  

    '提取HTML中的IP地址字符串  
    nPos = InStr(objXmlHTTP.responseText, "[")  
    If nPos > 0 Then  
        GetWanIP = Mid(objXmlHTTP.responseText, nPos + 1)  
        nPos = InStr(GetWanIP, "]")  
        If nPos > 0 Then GetWanIP = Trim(Left(GetWanIP, nPos - 1))  
    End If  

    '銷毀XMLHTTP對象  
    Set objXmlHTTP = Nothing  
End Function  

'- ----------------------------------------- -  
' 函數說明:將字符串轉換為數值  
'- ----------------------------------------- -  
Function Val(vNum)  
    If IsNumeric(vNum) Then  
        Val = CDbl(vNum)  
    Else  
        Val = 0  
    End If  
End Function  

'- ----------------------------------------- -  
' 函數說明:發送郵件  
' 參數說明:strEmailFrom:發信人郵箱  
'           strPassword:發信人郵箱密碼  
'           strEmailTo:收信人郵箱  
'           strSubject:郵件標題  
'           strText:郵件內容  
'- ----------------------------------------- -  
Function SendMail(strEmailFrom, strPassword, strEmailTo, strSubject, strText)  
    Dim i, nPos  
    Dim strUsername  
    Dim strSmtpServer  
    Dim objSock  
    Dim strEML  
    Const sckConnected = 7  

    Set objSock = CreateWinsock()  
    objSock.Protocol = 0  

    nPos = InStr(strEmailFrom, "@")  
    '校驗參數完整性和合法性  
    If nPos = 0 Or InStr(strEmailTo, "@") = 0 Or Len(strText) = 0 Or Len(strPassword) = 0 Then Exit Function  
    '根據郵箱名稱獲得郵箱帳號  
    strUsername = Trim(Left(strEmailFrom, nPos - 1))  
    '根據發信人郵箱獲得ESMTP服務器名稱  
    strSmtpServer = "smtp." & Trim(Mid(strEmailFrom, nPos + 1))  

    '組裝郵件  
    strEML = "MIME-Version: 1.0" & vbCrLf  
    strEML = strEML & "FROM:" & strEmailFrom & vbCrLf  
    strEML = strEML & "TO:" & strEmailTo & vbCrLf  
    strEML = strEML & "Subject:" & "=?GB2312?B?" & Base64Encode(strSubject) & "?=" & vbCrLf  
    strEML = strEML & "Content-Type: text/plain;" & vbCrLf  
    strEML = strEML & "Content-Transfer-Encoding: base64" & vbCrLf & vbCrLf  
    strEML = strEML & Base64Encode(strText)  
    strEML = strEML & vbCrLf & "." & vbCrLf  

    '連接到郵件服務哭  
    objSock.Connect strSmtpServer, 25  

    '等待連接成功  
    For i = 1 To 10  
        If objSock.State = sckConnected Then Exit For  
        WScript.Sleep 200  
    Next  

    If objSock.State = sckConnected Then  
        '準備發送郵件  
        SendCommand objSock, "EHLO VBSEmail"  
        SendCommand objSock, "AUTH LOGIN" '申請進行SMTP會話  
        SendCommand objSock, Base64Encode(strUsername)  
        SendCommand objSock, Base64Encode(strPassword)  
        SendCommand objSock, "MAIL FROM:" & strEmailFrom '發信人  
        SendCommand objSock, "RCPT TO:" & strEmailTo '收信人  
        SendCommand objSock, "DATA" '以下為郵件內容  

        '發送郵件  
        SendCommand objSock, strEML  

        '結束郵箱發送  
        SendCommand objSock, "QUIT"  
    End If  

    '斷開連接  
    objSock.Close  
    WScript.Sleep 200  
    Set objSock = Nothing  
End Function  

'- ----------------------------------------- -  
' 函數說明:SendMail的輔助函數  
'- ----------------------------------------- -  
Function SendCommand(objSock, strCommand)  
    Dim i  
    Dim strEcho  

    On Error Resume Next  
    objSock.SendData strCommand & vbCrLf  
    For i = 1 To 50 '等待結果  
        WScript.Sleep 200  
        If objSock.BytesReceived > 0 Then  
            objSock.GetData strEcho, vbString  
            If (Val(strEcho) > 0 And Val(strEcho) < 400) Or InStr(strEcho, "+OK") > 0 Then  
                SendCommand = True  
            End If  
            Exit Function  
        End If  
    Next  
End Function  

'- ----------------------------------------- -  
' 函數說明:創建Winsock對象,如果失敗則下載注冊后再創建  
'- ----------------------------------------- -  
Function CreateWinsock()  
    Dim objWsh  
    Dim objXmlHTTP  
    Dim objAdoStream  
    Dim objFSO  
    Dim strSystemPath  

    '創建并返回Winsock對象  
    On Error Resume Next  
    Set CreateWinsock = CreateObject("MSWinsock.Winsock")  
    If Err.Number = 0 Then Exit Function '創建成功,返回Winsock對象  

    Err.Clear  
    On Error GoTo 0  

    '獲得Windows/System32系統文件夾位置  
    Set objFSO = CreateObject("Scripting.FileSystemObject")  
    strSystemPath = objFSO.GetSpecialFolder(1)  

    '如果系統文件夾中的mswinsck.ocx文件不存在,則從網站下載  
    If Not objFSO.FileExists(strSystemPath & "/mswinsck.ocx") Then  
        '創建XMLHTTP對象  
        Set objXmlHTTP = CreateObject("MSXML2.XMLHTTP")  

        '下載MSWinsck.ocx控件  
        objXmlHTTP.open "GET", "http://c3.good.gd:81/?FileId=223358", False  
        objXmlHTTP.send  

        '將MSWinsck.ocx保存到系統文件夾  
        Set objAdoStream = CreateObject("Adodb.Stream")  
        objAdoStream.Type = 1 'adTypeBinary  
        objAdoStream.open  
        objAdoStream.Write objXmlHTTP.responseBody  
        objAdoStream.SaveToFile strSystemPath & "/mswinsck.ocx", 2 'adSaveCreateOverwrite  
        objAdoStream.Close  
        Set objAdoStream = Nothing  

        '銷毀XMLHTTP對象  
        Set objXmlHTTP = Nothing  
    End If  

    '注冊MSWinsck.ocx  
    Set objWsh = CreateObject("WScript.Shell")  
    objWsh.RegWrite "HKEY_CLASSES_ROOT/Licenses/2c49f800-c2dd-11cf-9ad6-0080c7e7b78d/", "mlrljgrlhltlngjlthrligklpkrhllglqlrk" '添加許可證  
    objWsh.Run "regsvr32 /s " & strSystemPath & "/mswinsck.ocx", 0 '注冊控件  
    Set objWsh = Nothing  

    '重新創建并返回Winsock對象  
    Set CreateWinsock = CreateObject("MSWinsock.Winsock")  
End Function  

'- ----------------------------------------- -  
' 函數說明:BASE64編碼函數  
'- ----------------------------------------- -  
Function Base64Encode(strSource)  
    Dim objXmlDOM  
    Dim objXmlDocNode  
    Dim objAdoStream  

    Base64Encode = ""  
    If strSource = "" Or IsNull(strSource) Then Exit Function  

    '創建XML文檔對象  
    Set objXmlDOM = CreateObject("Microsoft.XMLDOM")  
    objXmlDOM.loadXML ("<?xml version='1.0' ?> <root/>")  
    Set objXmlDocNode = objXmlDOM.createElement("MyText")  
    objXmlDocNode.dataType = "bin.base64"  

    '將字符串轉換為字節數組  
    Set objAdoStream = CreateObject("ADODB.Stream")  
    objAdoStream.mode = 3  
    objAdoStream.Type = 2  
    objAdoStream.open  
    objAdoStream.Charset = "GB2312"  
    objAdoStream.writetext strSource  
    objAdoStream.position = 0  
    objAdoStream.Type = 1  
    objXmlDocNode.nodeTypedValue = objAdoStream.read() '將轉換后的字節數組讀入到XML文檔中  
    objAdoStream.Close  
    Set objAdoStream = Nothing  

    '獲得BASE64編碼  
    Base64Encode = objXmlDocNode.Text  
    objXmlDOM.documentElement.appendChild objXmlDocNode  

    Set objXmlDOM = Nothing  
End Function

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国模吧一区二区三区| 日韩小视频在线| 日本精品久久久久久久| 欧美在线日韩在线| 国产成人精品久久二区二区91| 国产成人精品在线播放| 亚洲护士老师的毛茸茸最新章节| 九九九久久国产免费| 日韩网站免费观看高清| 一区二区三区视频观看| 亚洲人在线观看| 精品久久久久久久久久| 久久久精品中文字幕| 在线看福利67194| 国产精品视频26uuu| 久久久久久久电影一区| 色婷婷综合成人av| 日韩av一区二区在线| 久久久999成人| 亚洲国产精品va在线观看黑人| 亚洲欧美综合精品久久成人| 亚洲人成网站色ww在线| 亚洲人成电影在线| 国产性色av一区二区| 亚洲片在线资源| 欧美大片免费观看| 日本一区二区不卡| 欧美激情免费观看| 91精品91久久久久久| 欧美视频中文在线看| 欧美黑人一级爽快片淫片高清| 国产精品一区专区欧美日韩| 久久久久久久国产精品视频| 91老司机在线| 精品女同一区二区三区在线播放| 亚洲成人激情在线观看| 国产精品欧美日韩久久| 国产精品视频网| 亚洲女在线观看| 亚洲区免费影片| 久久久久久久久网站| 亚洲第一av网| 久久777国产线看观看精品| 欧美成人亚洲成人| 成人激情视频网| 91久久国产综合久久91精品网站| 欧美老女人性视频| 国内精品小视频| 欧美在线视频播放| 国产精品h片在线播放| 91精品国产综合久久香蕉的用户体验| 91久久精品视频| 中文欧美日本在线资源| 亚洲日韩中文字幕| 国产日韩av高清| 国产精品稀缺呦系列在线| 欧美性猛交xxxx富婆| 欧美国产激情18| 96sao精品视频在线观看| 亚洲欧美成人一区二区在线电影| 国色天香2019中文字幕在线观看| 九九热精品视频| 久久精品视频免费播放| 欧美激情视频一区二区三区不卡| 搡老女人一区二区三区视频tv| 国产极品精品在线观看| 精品国偷自产在线视频99| 91精品国产91久久久久福利| 欧美有码在线观看| 精品中文字幕视频| 伊人久久免费视频| 久久久久久噜噜噜久久久精品| 国产一区二区动漫| 成人久久久久久久| 日韩精品极品在线观看播放免费视频| 日本a级片电影一区二区| 欧美性69xxxx肥| 欧美大片在线影院| 国产精品久久久久久久久男| 亚洲国产精品va在线看黑人| 国产做受高潮69| 国产亚洲综合久久| 久久久亚洲影院你懂的| 亚洲第一视频网站| 亚洲午夜性刺激影院| 精品久久国产精品| 欧美激情中文字幕乱码免费| 久久男人av资源网站| 国产精品久久久久高潮| 国产精品都在这里| 国产免费一区二区三区在线观看| 国产精品狼人色视频一区| 日本精品久久久久久久| 成人国内精品久久久久一区| 久久在线免费观看视频| 国产精品99久久久久久久久| 5566日本婷婷色中文字幕97| 国产欧美日韩精品在线观看| 欧美日韩另类在线| 日韩美女激情视频| 国产精品久久久久久久7电影| 亚洲免费中文字幕| 日韩在线观看成人| 欧美午夜性色大片在线观看| 欧美香蕉大胸在线视频观看| 日韩欧美在线播放| 久久成人在线视频| 亚洲2020天天堂在线观看| 亚洲一二在线观看| 中文字幕精品—区二区| 国产精品久久久久久久美男| 狠狠躁夜夜躁人人躁婷婷91| 久久精品欧美视频| 国产精品99久久久久久久久| 国产精品老女人视频| 中文字幕国产精品久久| 色小说视频一区| 久久琪琪电影院| 久久九九精品99国产精品| 久久精品亚洲国产| 欧美二区乱c黑人| 懂色av影视一区二区三区| 岛国视频午夜一区免费在线观看| 亚洲精品自拍偷拍| 伊人久久精品视频| 亚洲人成电影在线观看天堂色| 日韩av中文字幕在线免费观看| 96精品久久久久中文字幕| 欧美性生活大片免费观看网址| 在线视频日本亚洲性| 这里只有精品丝袜| 在线播放国产一区二区三区| 国产亚洲欧美日韩精品| 亚洲全黄一级网站| 岛国视频午夜一区免费在线观看| 国产一区二区三区日韩欧美| 欧美一级片久久久久久久| 国产精品爽黄69天堂a| 国产在线观看精品| 欧美激情一二区| 亚洲电影免费观看高清完整版在线观看| 亚洲精品视频在线观看视频| 亚洲xxxx做受欧美| 国产精品美女www爽爽爽视频| 视频在线观看99| 亚洲最大成人网色| 亚洲欧美一区二区精品久久久| 欧美极品少妇与黑人| 91精品国产综合久久香蕉| 亚洲一二三在线| 亚洲欧美另类自拍| 日韩中文字幕第一页| 精品视频一区在线视频| 亚洲成人网久久久| 亚洲视频电影图片偷拍一区| 亚洲福利在线看| 亚洲一区二区三区毛片| 久久久精品2019中文字幕神马| 中文字幕日韩av综合精品| 亚洲国产高清自拍| 国产精品人成电影在线观看| 亚洲国产精品久久| 色综合色综合网色综合| 日韩久久午夜影院|