在Localhost上查找外部IP地址

时间:2017-07-23 11:49:15

标签: c# asp.net ip localhost ip-address

您好我正在学校登录安全网站,但这都是基于本地主机的。

我希望能够真正捕获访问我网站的人。我实际上想要捕获该人正在使用的任何机器的外部IP地址。例如,当我运行我的网站并点击一个按钮时,它会立即捕获我的外部IP地址。

坦率地说,我对这个IP地址领域并不了解,但我对客户端,服务器,IP地址,端口号等内容有足够的了解。我在网络模块中学到了很多东西。 / p>

要提供更多信息,当您访问website to check IP address或任何其他IP网站时,您将获得外部IP地址。我实际上想要捕获这个IP地址并将其保存到我的数据库中。

我确实在stackoverflow,codeproject上做了我的研究,无论哪个我可以找到帮助,但它总是返回:: 1,我按下的是127.0.0.1我们的默认本地主机地址?

我已尝试过以下所有这些来试验他们的产品......

protected void getIP_Click(object sender, EventArgs e)
{
    String hostName = System.Net.Dns.GetHostName();
    String clientIpAddressHostName = System.Net.Dns.GetHostAddresses(hostName).GetValue(0).ToString();
    IP1.Text = clientIpAddressHostName;

    String clientIpAddress = HttpContext.Current.Request.ServerVariables["REMOTE_HOST"].ToString();
    IP2.Text = clientIpAddress;

    String ip = null;

    if (String.IsNullOrEmpty(HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]))
    {
        ip = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
    }

    IP3.Text = ip;

    String ipNext = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"].ToString();
    IP4.Text = ipNext;

    String ipNextNext = HttpContext.Current.Request.UserHostAddress;
    IP5.Text = ipNextNext;

    String last = System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName()).AddressList.GetValue(0).ToString();
    IP6.Text = last;
}

我还在线阅读我实际上可以从网站上的外部来源获取我的外部IP地址,基于下面的回答来自stackoverflow

Here

但是我还没有尝试过,因为我认为这不是一种安全的做法吗?如果我错了,请纠正我。

在搜索高低之后仍然无法得到我想要的东西..

有人可以帮忙吗?非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

看起来您正在阅读服务器IP地址。

可以通过以下网址阅读客户端IP地址:Http​Request.​User​Host​Address

您在服务器中收到的IP地址将是" public"客户地址。即,如果用户在代理后面,您将获得代理地址。

如果您使用IIS来托管您的网站,则可以将其配置为记录客户端IP地址。在这种情况下,您无需编写任何代码来记录IP地址。

Configure IIS Logging

  

在“W3C记录字段”对话框中,选择以下一个或多个选项:

     

客户端IP地址(c-ip):发出请求的客户端的IP地址。