获得本地外网地址并发送到指定邮箱,还可以参考这个文章https://www.jb51.net/article/40064.htm
复制代码 代码如下:
'* **************************************** *  
'* 程序名称: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
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]
 
                     
                    