0

有一个用 C# 构建的游戏模拟器。

当用户登录时,它会记录他们的 IP 地址以用于禁止等...

我们在反向代理后面,所以进入模拟器的所有连接当然都是代理的 IP。

但是在我们的 PHP 注册页面上,我们使用了这个代码......

function getRealIpAddr() {
    if (!empty($_SERVER['HTTP_CLIENT_IP']))
    //check ip from share internet
    {
        $ip=$_SERVER['HTTP_CLIENT_IP'];
    }
    elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
    //to check ip is pass from proxy
    {
        $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
    }
    else
    {
        $ip=$_SERVER['REMOTE_ADDR'];
    }
    return $ip;
}

并且它设法通过我们的反向代理返回客户端的正确 IP。

这就是我目前在 C# 中获取客户端 IP 的方式......

public string RemoteAddress
{
    get
    {
        return ((mSocket != null && mSocket.Connected ?
            mSocket.RemoteEndPoint.ToString().Split(':')[0] : string.Empty));
    }
}

给你一些上下文,mSocket是客户端连接的 Socket

有没有 C# 的函数可以做同样的事情?我看到的所有答案都将我指向 ASP,但我不需要那个!

4

1 回答 1

0

我决定当用户使用 PHP 登录它时,它现在将设置他们的 IP,而不是模拟器在他们连接到它时执行它!

干杯理查德:)

于 2012-12-14T14:46:24.357 回答