网页如何获取用户的真是IP?(asp.net,C#)

来源:百度知道 编辑:UC知道 时间:2024/05/25 09:18:27
透过代理如何获取用户的真实IP,网上的方法都有漏洞,使用简单的IE的代理可以,如果使用玩游戏专用的代理,则就不行了。
目前没有发现好的方法。
如果谁有好的方法希望能够提供出来,高分奖励。
程序是asp.net,C#,请不要使用其他语言的...

/// <summary>
/// 获取用户登录IP
/// </summary>
/// <returns></returns>
string GetIp()
{
string userIP=Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (userIP==null || userIP=="")
{
userIP=Request.ServerVariables["REMOTE_ADDR"];
}
return userIP;
}

在Win32 API中我们可以使用NetWork API完成这项工作,但是在.Net平台下我们应当如何做呢?其实操作方法与API差不多,只是大家要理解一下Namespace与Class。本站这方面的文章很多,关于Namespace与Class的内容就不介绍了。

.Net平台存在System.Net命名空间,其中的DNS类,提供了一些方法可以获取服务器的服务名或者是IP地址。DNS是一个静态类,所以它能够直接创建类实例。闲话少说,我们来看具体的程序:

namespace NKUtilities
{
using System;
using System.Net;

public class DNSUtility
{
public static int Main (string [] args)
{

String strHostName = new String ("");
if (args.Length == 0)
{
// 获得本地的IP地址
//首先获了本地机的主机名
strHostName = DNS.GetHostName ();
Console.Wri