通过SOCKS5代理,如何获得服务器端的真实IP地址(即非局域网IP)?我使用的是SOCKS5代理中的UDP关联方法,使用此种方法无法得到服务器拨号后得到的网络真实IP地址,如果用CONNECT方式连通之后是可以真实IP的。如何不通过CONNECT方式而得到服务器的真实IP,或者以CONNECT方式但不需要指定一个实际有效的远端IP及端口而获得服务器的真实IP?注:我的服务器的代理软件是wingate。

解决方案 »

  1.   

    没看懂,祝你好运!
    IPCONFIG不行吗?
    TRACERT WWW.163.COM 的第一个IP地址!
      

  2.   

    我看很难,因为UDP方式不是基于连接的,所使用的IP是虚的。
        你能不能两种方式同时用,这样不就可以得到IP了吗
      

  3.   

    可能我的题目说的不太清楚:我是需要通过程序来实现以上目的的,所以所有外部的方法都是不适合的。To: redby(红孩) :我之前也是尝试这样做的,但这种做法只能是将就而已,不是软件产品代码实现的长久之计。这种做法遇到的问题是:用connect方式进行代理连接后,远端的目标IP地址是需要指定的,最初经过实验,指定一个无效的IP即可创建起这个连接,从而得到Gateway的真实IP,但并不是指定任意IP都可以,我测试时使用"127.127.127.127"。但是后来可能由于Wingate代理的设置改变了,或者路由器发生了变化,总之后来指定这个无效的地址就不可以了,尝试了多个其他的无效的IP也没有用。而只能通过指定一个有效的连入Internet网络的主机IP才可以。这样,问题就来了:为使程序通用,就必须使用可靠的方法,不能指定一个无效的IP了;在程序内部指定一个固定的有效IP或网址也不太可行,因为一旦它变得无效则程序可能无法正常运行了;那么就需要用户指定一个有效的IP或者网址,用户指定网址比较可行,因为一般不会变动。但是这样使得程序变得有些异形,而且表面上看似乎这样的设置选项与软件的功能没有任何关系。那么究竟怎么能比较完美的实现呢?或者说这确实是行不通的??
      

  4.   

    呵呵,你可以抓一下QQ发出的数据啊,格式都是固定的
    你看一下这篇文章:
    http://www.yesky.com/20030124/1649965.shtml
      

  5.   

    借用贵宝地!
    http://expert.csdn.net/Expert/topic/2306/2306268.xml?temp=.4389612
      

  6.   

    建议还是用连接网址的方式来实现,可以选择一些大的站点,象现在的一些代理搜索软件都是这么做的。因为如果不连接的话或者不连接错误的地址的话,代理服务器返回的信息都是你发送的请求包里添入的地址信息,而不是服务端为你开通的对外的地址信息。
        有一种方法不知道是不是可行,不过没有试过,你可以尝试连接任意外部地址,然后查看代理返回的数据包的mac地址,如果他添入以太网桢头里的是代理外部接口的mac信息的话,那你就可以通过发送arp包来获得外部的接口信息,不过如果他返回是添入的是内接口信息就没有办法了。那可以尝试采用发送icmp里记录路由的包什么来试试了
      

  7.   

    关于icmp包以及关于路由是肯定不行的,因为在内部网络中路由仅仅是内部的,而代理服务器中的路由信息是不会发到内部机器的,这在以前的帖子中有人尝试过!!
    可以察看http://expert.csdn.net/Expert/topic/1863/1863501.xml?temp=.1687128而读取mac地址按以上的思路考虑,一样也是限制在内部接口上的。连接网址的方式是一种比较迁就的做法,但可能是最可行的一种方法。任何事情都可能不会比较完美的解决,就象Winsock中实现的UDP和TCP一样,其中的许多思路已经违背了协议的初衷,是与IP层产生了交错的。呵呵,不知是否还有高手有其他的高见!!