家里用的路由器拨号,笔记本接入路由器
我想用delphi编程实现读取路由器拨号后的动态ip地址
不知道该用什么办法

解决方案 »

  1.   

    最好的办法是找一个稳定的网站服务器,上传一个显示IP的网页,然后用idhttp直接获取内容就可以了
      

  2.   

    不知道路由器拨号和通过ADSL猫拨号什么差别。
    ADSL猫的话,可以用RasApi32.DLL的API来获取,首先要用函数RasEnumConnections列出已建立的活动拨号连接的信息,包括连接名称、连接句柄、连接设备类型和设备名称;然后根据连接句柄用函数RasGetProjectionInfo获取连接对应的一个TRASPPPIP结构,其中包括一个成员属性szIpAddress即为动态IP地址。
      

  3.   

    其實路由器的IP更容易得到!如果你用TB-LINK查考下面代碼
    用webbrowser 打開 http://192.168.1.1/userRpm/StatusRpm.htm ,如果不是TB—LINK那這個地址就有些不同
            try
               Memo1.Lines.Add((Web1.Document as IHTMLDocument2).body.innerHTML);
               IPaddr := copy(memo1.Lines.ValueFromIndex[48],4,length(memo1.Lines.ValueFromIndex[48])-8);
               iplist.lines.Add(IPaddr);
            except
               memo1.Lines.Add(timetostr(time)+'  IP獲取失敗!  ')
            end;這是我之前寫一個自動給路由換IP的小東西里的代碼。僅對TB—LINK管用。但其它路由模式一樣 ,當然你自己可以用IDHTTP去嘗試。我用webbrowser是因為還是控制它按時斷線與連接