找回密码
 加入
搜索
查看: 1815|回复: 4

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

[复制链接]
发表于 2011-12-20 02:11:13 | 显示全部楼层 |阅读模式
如何根据从已经连接的套接字里获得真实IP
服务端在一路由后面。
通过
Func SocketToIP($SHOCKET)
    Local $sockaddr, $aRet
    
    $sockaddr = DllStructCreate("short;ushort;uint;char[8]")

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

    $sockaddr = 0

    Return $aRet
EndFunc   ;==>SocketToIP
可以获取到IP。但是 是路由的IP。并不是真正的客户端连接IP。
请高手指点下。
 楼主| 发表于 2011-12-20 02:59:28 | 显示全部楼层
晕大神都睡了么
 楼主| 发表于 2011-12-20 13:36:16 | 显示全部楼层
大神还没起来么
 楼主| 发表于 2011-12-20 17:27:23 | 显示全部楼层
顶起 不要塌了
发表于 2011-12-21 13:23:33 | 显示全部楼层
不可能吧,你连接的实际上就是路由器,由路由器再转发到服务器的,地址在路由器上,除非你可以侵入路由器查看。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-17 10:17 , Processed in 0.081213 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表