有一个用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
是连接客户端的套接字
C#是否可以执行相同的功能?我看到的所有答案都指向ASP,但我不需要它!
答案 0 :(得分:0)
我已经决定当用户使用PHP登录时,它现在将设置他们的IP而不是模拟器在连接到它时执行它!
干杯 理查德:)