ip网址怎么获取客户端ip地址

ylwqhr 2015-01-30 02:32:01
比如地址是:1.51.23.111/index.aspx 没有域名
怎么获取客户端ip地址
/// <summary>
/// 获取远程访问用户的Ip地址
/// </summary>
/// <returns>返回Ip地址</returns>
protected string GetIps()
{
string loginip = "";
//Request.ServerVariables[""]--获取服务变量集合
if (Request.ServerVariables["REMOTE_ADDR"] != null) //判断发出请求的远程主机的ip地址是否为空
{
//获取发出请求的远程主机的Ip地址
loginip = Request.ServerVariables["REMOTE_ADDR"].ToString();
}
//判断登记用户是否使用设置代理
else if (Request.ServerVariables["HTTP_VIA"] != null)
{
if (Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != null)
{
//获取代理的服务器Ip地址
loginip = Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
}
else
{
//获取客户端IP
loginip = Request.UserHostAddress;
}
}
else
{
//获取客户端IP
loginip = Request.UserHostAddress;
}
return loginip;
}



这个代码只能获取服务器的ip地址, Request.UserHostAddress这句也是,但是如果把这代码放在有域名(www.baidu.com)的地方就可以获取到客户端ip地址了。
那ip网址怎么获取客户端ip地址呢
...全文
262 12 打赏 收藏 举报
写回复
12 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
骑猪看海 2015-02-02
  • 打赏
  • 举报
回复
获取客户端IP地址和你用域名或者是IP访问的没有任何关系
ztybn 2015-02-01
  • 打赏
  • 举报
回复
看看那个大神解决那。
rayyu1989 2015-01-31
  • 打赏
  • 举报
回复
引用 9 楼 ylwqhr 的回复:
[quote=引用 6 楼 rayyu1989 的回复:] 若域名ip非本地ip 则可获取 若为本机ip则无法获取
什么意思呢 现在是用ip地址访问网站的 没有域名呢 而且以后也不会有域名[/quote]只要你访问的ip 不是你本机的ip 是可以获取到访问ip地址的,你是在本机调试代码吧 试试把代码部署到线上或者部署到虚拟机里测试访问
ylwqhr 2015-01-31
  • 打赏
  • 举报
回复
引用 6 楼 rayyu1989 的回复:
若域名ip非本地ip 则可获取 若为本机ip则无法获取
什么意思呢 现在是用ip地址访问网站的 没有域名呢 而且以后也不会有域名
ylwqhr 2015-01-31
  • 打赏
  • 举报
回复
试了很多不同的获取方法都不行
ylwqhr 2015-01-31
  • 打赏
  • 举报
回复
引用 3 楼 sp1234 的回复:
[quote=引用 楼主 ylwqhr 的回复:] 这个代码只能获取服务器的ip地址, Request.UserHostAddress这句也是,但是如果把这代码放在有域名(www.baidu.com)的地方就可以获取到客户端ip地址了。 那ip网址怎么获取客户端ip地址呢
你这个代码要是能免费放到 www.baidu.com,我给你一亿人民币。[/quote] 没有域名绑定主机的地址(比如:1.51.23.111/index.aspx)Request.UserHostAddress不能获取客户端ip,获取的是服务器ip 有域名绑定主机的地址(比如:www.sfdsfdsdfsdsdfsdfsd.com/index.aspx)Request.UserHostAddress能获取客户端ip 那那ip网址怎么获取客户端ip地址呢
rayyu1989 2015-01-31
  • 打赏
  • 举报
回复
若域名ip非本地ip 则可获取 若为本机ip则无法获取
ylwqhr 2015-01-31
  • 打赏
  • 举报
回复
那个域名是举个例子啊 这个代码只能获取服务器的ip地址, Request.UserHostAddress这句也是,但是如果把这代码放在有域名(www.sdfsd.com)或者域名绑定主机的地方就可以获取到客户端ip地址了。 没有域名绑定主机的地址(比如:1.51.23.111/index.aspx)Request.UserHostAddress不能获取客户端ip,获取的是服务器ip 有域名绑定主机的地址(比如:www.sfdsfdsdfsdsdfsdfsd.com/index.aspx)Request.UserHostAddress能获取客户端ip 那那ip网址怎么获取客户端ip地址呢
  • 打赏
  • 举报
回复
你还是要自己再整理一下自己的逻辑思路,自己先解决一些问题,再问。
  • 打赏
  • 举报
回复
引用 楼主 ylwqhr 的回复:
这个代码只能获取服务器的ip地址, Request.UserHostAddress这句也是,但是如果把这代码放在有域名(www.baidu.com)的地方就可以获取到客户端ip地址了。 那ip网址怎么获取客户端ip地址呢
你这个代码要是能免费放到 www.baidu.com,我给你一亿人民币。
蝶恋花雨 2015-01-31
  • 打赏
  • 举报
回复
public static string GetIPAddress()
    {
        string ipv4 = String.Empty;
        foreach (IPAddress IPA in Dns.GetHostAddresses(HttpContext.Current.Request.UserHostAddress))
        {
            if (IPA.AddressFamily.ToString() == "InterNetwork")
            {
                ipv4 = IPA.ToString();
                break;
            }
        }
        if (ipv4 != String.Empty)
        {
            return ipv4;
        }
        foreach (IPAddress IPA in Dns.GetHostAddresses(Dns.GetHostName()))
        {
            if (IPA.AddressFamily.ToString() == "InterNetwork")
            {
                ipv4 = IPA.ToString();
                break;
            }
        }
        return ipv4;
    }
试试这个。 192.168.0.12/index.aspx 访问我这个能获取IP www.也能
小蜗牛1 2015-01-30
  • 打赏
  • 举报
回复
没有遇到过类似问题,坐等大神解答
发帖
.NET社区

6.1w+

社区成员

.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
帖子事件
创建了帖子
2015-01-30 02:32
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。