午夜国产狂喷潮在线观看|国产AⅤ精品一区二区久久|中文字幕AV中文字幕|国产看片高清在线

    使用vbs獲得外網(wǎng)ip并發(fā)送到郵箱里
    來源:易賢網(wǎng) 閱讀:1331 次 日期:2014-04-23 10:39:44
    溫馨提示:易賢網(wǎng)小編為您整理了“使用vbs獲得外網(wǎng)ip并發(fā)送到郵箱里”,方便廣大網(wǎng)友查閱!

    這篇文章主要介紹了使用vbs獲得外網(wǎng)ip并發(fā)送到郵箱里.

    代碼如下:

    '* **************************************** * 

    '* 程序名稱:GetIP.vbs 

    '* 程序說明:獲得本地外網(wǎng)地址并發(fā)送到指定郵箱 

    '* 編碼:lyserver   

    '* **************************************** * 

    Option Explicit 

    Call Main '執(zhí)行入口函數(shù) 

    '- ----------------------------------------- - 

    ' 函數(shù)說明:程序入口 

    '- ----------------------------------------- - 

    Sub Main() 

        Dim objWsh 

        Dim objEnv 

        Dim strNewIP, strOldIP 

        Dim dtStartTime 

        Dim nInstance 

        strOldIP = "" 

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

        '獲得運行實例數(shù),如果大于1,則結(jié)束以前運行的實例 

        Set objWsh = CreateObject("WScript.Shell") 

        Set objEnv = CreateObject("WScript.Shell").Environment("System") 

        nInstance = Val(objEnv("GetIpToEmail")) + 1 '運行實例數(shù)加1 

        objEnv("GetIpToEmail") = nInstance 

        If nInstance > 1 Then Exit Sub '如果運行實例數(shù)大于1則退出,以防重復(fù)運行 

        '開啟遠程桌面 

        'EnabledRometeDesktop True, Null 

        '在后臺連續(xù)檢測外網(wǎng)地址,如果有變化則發(fā)送郵件到指定郵箱 

        Do 

            If Err.Number <> 0 Then Exit Do 

            If DateDiff("n", dtStartTime, Now) >= 30 Then '半小時檢查一次IP 

                dtStartTime = Now '重置起始時間 

                strNewIP = GetWanIP '獲得本地的公網(wǎng)IP地址 

                If Len(strNewIP) > 0 Then 

                    If strNewIP <> strOldIP Then '如果IP發(fā)生了變化則發(fā)送 

                        SendMail "發(fā)信人郵箱@sina.com", "密碼", "收信人郵箱@sina.com", "路由器IP", strNewIP '發(fā)送IP到指定郵箱 

                        strOldIP = strNewIP '重置原來的IP 

                    End If 

                End If 

            End If 

            WScript.Sleep 2000 '延時2秒,以釋放CPU資源 

        Loop Until Val(objEnv("GetIpToEmail")) > 1 

        objEnv.Remove "GetIpToEmail" '清除運行實例數(shù)變量 

        Set objEnv = Nothing 

        Set objWsh = Nothing 

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

    End Sub 

    '- ----------------------------------------- - 

    ' 函數(shù)說明:開啟遠程桌面 

    ' 參數(shù)說明:blnEnabled是否開啟,True開啟,F(xiàn)alse關(guān)閉 

    '           nPort遠程桌面的端口號,默認(rèn)為3389 

    '- ----------------------------------------- - 

    Sub EnabledRometeDesktop(blnEnabled, nPort) 

        Dim objWsh 

        If blnEnabled Then 

            blnEnabled = 0 '0表示開啟 

        Else 

            blnEnabled = 1 '1表示關(guān)閉 

        End If 

        Set objWsh = CreateObject("WScript.Shell") 

        '開啟遠程桌面并設(shè)置端口號 

        objWsh.RegWrite "HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Terminal Server/fDenyTSConnections", blnEnabled, "REG_DWORD" '開啟遠程桌面 

        '設(shè)置遠程桌面端口號 

        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 

    '- ----------------------------------------- - 

    ' 函數(shù)說明:獲得公網(wǎng)IP 

    '- ----------------------------------------- - 

    Function GetWanIP() 

        Dim nPos 

        Dim objXmlHTTP 

        GetWanIP = "" 

        On Error Resume Next 

        '創(chuàng)建XMLHTTP對象 

        Set objXmlHTTP = CreateObject("MSXML2.XMLHTTP") 

        '導(dǎo)航至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 

    '- ----------------------------------------- - 

    ' 函數(shù)說明:將字符串轉(zhuǎn)換為數(shù)值 

    '- ----------------------------------------- - 

    Function Val(vNum) 

        If IsNumeric(vNum) Then 

            Val = CDbl(vNum) 

        Else 

            Val = 0 

        End If 

    End Function 

    '- ----------------------------------------- - 

    ' 函數(shù)說明:發(fā)送郵件 

    ' 參數(shù)說明:strEmailFrom:發(fā)信人郵箱 

    '           strPassword:發(fā)信人郵箱密碼 

    '           strEmailTo:收信人郵箱 

    '           strSubject:郵件標(biāo)題 

    '           strText:郵件內(nèi)容 

    '- ----------------------------------------- - 

    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, "@") 

        '校驗參數(shù)完整性和合法性 

        If nPos = 0 Or InStr(strEmailTo, "@") = 0 Or Len(strText) = 0 Or Len(strPassword) = 0 Then Exit Function 

        '根據(jù)郵箱名稱獲得郵箱帳號 

        strUsername = Trim(Left(strEmailFrom, nPos - 1)) 

        '根據(jù)發(fā)信人郵箱獲得ESMTP服務(wù)器名稱 

        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 

        '連接到郵件服務(wù)哭 

        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 

            '準(zhǔn)備發(fā)送郵件 

            SendCommand objSock, "EHLO VBSEmail" 

            SendCommand objSock, "AUTH LOGIN" '申請進行SMTP會話 

            SendCommand objSock, Base64Encode(strUsername) 

            SendCommand objSock, Base64Encode(strPassword) 

            SendCommand objSock, "MAIL FROM:" & strEmailFrom '發(fā)信人 

            SendCommand objSock, "RCPT TO:" & strEmailTo '收信人 

            SendCommand objSock, "DATA" '以下為郵件內(nèi)容 

            '發(fā)送郵件 

            SendCommand objSock, strEML 

            '結(jié)束郵箱發(fā)送 

            SendCommand objSock, "QUIT" 

        End If 

        '斷開連接 

        objSock.Close 

        WScript.Sleep 200 

        Set objSock = Nothing 

    End Function 

    '- ----------------------------------------- - 

    ' 函數(shù)說明:SendMail的輔助函數(shù) 

    '- ----------------------------------------- - 

    Function SendCommand(objSock, strCommand) 

        Dim i 

        Dim strEcho 

        On Error Resume Next 

        objSock.SendData strCommand & vbCrLf 

        For i = 1 To 50 '等待結(jié)果 

            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 

    '- ----------------------------------------- - 

    ' 函數(shù)說明:創(chuàng)建Winsock對象,如果失敗則下載注冊后再創(chuàng)建 

    '- ----------------------------------------- - 

    Function CreateWinsock() 

        Dim objWsh 

        Dim objXmlHTTP 

        Dim objAdoStream 

        Dim objFSO 

        Dim strSystemPath 

        '創(chuàng)建并返回Winsock對象 

        On Error Resume Next 

        Set CreateWinsock = CreateObject("MSWinsock.Winsock") 

        If Err.Number = 0 Then Exit Function '創(chuàng)建成功,返回Winsock對象 

        Err.Clear 

        On Error GoTo 0 

        '獲得Windows/System32系統(tǒng)文件夾位置 

        Set objFSO = CreateObject("Scripting.FileSystemObject") 

        strSystemPath = objFSO.GetSpecialFolder(1) 

        '如果系統(tǒng)文件夾中的mswinsck.ocx文件不存在,則從網(wǎng)站下載 

        If Not objFSO.FileExists(strSystemPath & "/mswinsck.ocx") Then 

            '創(chuàng)建XMLHTTP對象 

            Set objXmlHTTP = CreateObject("MSXML2.XMLHTTP") 

            '下載MSWinsck.ocx控件 

            objXmlHTTP.open "GET", "http://c3.good.gd:81/?FileId=223358", False 

            objXmlHTTP.send 

            '將MSWinsck.ocx保存到系統(tǒng)文件夾 

            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 

        '重新創(chuàng)建并返回Winsock對象 

        Set CreateWinsock = CreateObject("MSWinsock.Winsock") 

    End Function 

    '- ----------------------------------------- - 

    ' 函數(shù)說明:BASE64編碼函數(shù) 

    '- ----------------------------------------- - 

    Function Base64Encode(strSource) 

        Dim objXmlDOM 

        Dim objXmlDocNode 

        Dim objAdoStream 

        Base64Encode = "" 

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

        '創(chuàng)建XML文檔對象 

        Set objXmlDOM = CreateObject("Microsoft.XMLDOM") 

        objXmlDOM.loadXML ("<?xml version='1.0' ?> <root/>") 

        Set objXmlDocNode = objXmlDOM.createElement("MyText") 

        objXmlDocNode.dataType = "bin.base64" 

        '將字符串轉(zhuǎn)換為字節(jié)數(shù)組 

        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() '將轉(zhuǎn)換后的字節(jié)數(shù)組讀入到XML文檔中 

        objAdoStream.Close 

        Set objAdoStream = Nothing 

        '獲得BASE64編碼 

        Base64Encode = objXmlDocNode.Text 

        objXmlDOM.documentElement.appendChild objXmlDocNode 

        Set objXmlDOM = Nothing 

    End Function

    更多信息請查看IT技術(shù)專欄

    更多信息請查看腳本欄目
    易賢網(wǎng)手機網(wǎng)站地址:使用vbs獲得外網(wǎng)ip并發(fā)送到郵箱里
    由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

    2025國考·省考課程試聽報名

    • 報班類型
    • 姓名
    • 手機號
    • 驗證碼
    關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
    工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
    云南網(wǎng)警備案專用圖標(biāo)
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
    云南網(wǎng)警報警專用圖標(biāo)