有一个用 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,但我不需要那个!