环境:公司在其他地方有办公区,是用ADSL拨号上网,IP地址为动态IP。为了维护方便客户端安装了VNC,可每次都不知道客户端的IP地址,无奈用了花生壳,但免费终究是免费的,每个月总有些时候没有用。今天在网上终于找到了部分AU3的程序,哈哈,刚好可以用上。
实现功能:现在已经在客户端用上了,客户端每隔5分钟,连接一次服务器,报告IP地址,这样我就放心的使用VNC了,并且我也知道他们的关机时间了(误差在5分钟内)
缺点:本人对AU3不熟悉,不能做成服务,还有安全方面基本没有考虑,待高手修正。
效果图:
 
代码贴出来:
其实就很简单的,都是网上COPY的
--------------------------------------------------
Dim $id="client001",$num=0   ;$id这里只是一种标示,机器标志,可以修改
While 1
        $num=$num+1
        $date=@MON&'-'&@MDAY
        $time=@HOUR&':'&@MIN&':'&@SEC
        $add=_GetIP()
        sql()
    Sleep(300000)      ;300000毫秒就是5分钟了,可以修改的
WEnd   
;----------------获取本机外部IP------------------------
Func _GetIP()
$ipurl = 'http://ip.91cool.net/ip.php?type=ip' & @cr & _
'http://www.123cha.com/ip/' & @cr & _
  'http://www.ip138.com/' & @cr & _
  'http://www.whatismyip.com'
$url = StringSplit($ipurl, @cr)
For $i = 1 to $url[0]
  If InetGet($url[$i], @TempDir & "\~ip.tmp") Then
  $add = FileRead(@TempDir & "\~ip.tmp", FileGetSize(@TempDir & "\~ip.tmp"))
  FileDelete(@TempDir & "\~ip.tmp")
  $add = StringRegExp($add, '((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)', 2)
  if not @error then Return $add[0]
EndIf
Next
SetError(1)
Return -1
EndFunc
;-----------------插入IP地址信息至SQL-----------------------
Func sql()
$conn = ObjCreate("ADODB.Connection")
$conn.Open ("driver={SQL Server};server=sqlname;uid=sa;pwd=pwd;database=ip");主机名IP127.0.0.1,UID=用户,PWD=密码,database=数据库名
$conn.Execute("insert into ip (ip_id,ip_num,ip_date,ip_time,ip_add) values ('"&$id&"','"&$num&"','"&$date&"','"&$time&"','"&$add&"')");插入一条纪录
$conn.close;关闭数据库连接
EndFunc
-------------------------------------------------
创建数据库:
--------------------------------------------------------------------
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[ip]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[ip]
GO
CREATE TABLE [dbo].[ip] (
    [ip_id] [char] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [ip_num] [int] NULL ,
    [ip_date] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
    [ip_time] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
    [ip_add] [char] (30) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
-----------------------------------------------------------------------------
 
真心求高手,帮忙改善此内容,这样我才用的放心啊。