49666684 发表于 2011-12-20 02:11:13

求助 :关于从已经连接的套接字里获得IP的问题。请大神指点

如何根据从已经连接的套接字里获得真实IP
服务端在一路由后面。
通过Func SocketToIP($SHOCKET)
    Local $sockaddr, $aRet
   
    $sockaddr = DllStructCreate("short;ushort;uint;char")

    $aRet = DllCall("Ws2_32.dll", "int", "getpeername", "int", $SHOCKET, _
            "ptr", DllStructGetPtr($sockaddr), "int*", DllStructGetSize($sockaddr))
    If Not @error And $aRet = 0 Then
      $aRet = DllCall("Ws2_32.dll", "str", "inet_ntoa", "int", DllStructGetData($sockaddr, 3))
      If Not @error Then $aRet = $aRet
    Else
      $aRet = 0
    EndIf

    $sockaddr = 0

    Return $aRet
EndFunc   ;==>SocketToIP

可以获取到IP。但是 是路由的IP。并不是真正的客户端连接IP。
请高手指点下。

49666684 发表于 2011-12-20 02:59:28

晕大神都睡了么

49666684 发表于 2011-12-20 13:36:16

大神还没起来么

49666684 发表于 2011-12-20 17:27:23

顶起 不要塌了

yth 发表于 2011-12-21 13:23:33

不可能吧,你连接的实际上就是路由器,由路由器再转发到服务器的,地址在路由器上,除非你可以侵入路由器查看。
页: [1]
查看完整版本: 求助 :关于从已经连接的套接字里获得IP的问题。请大神指点