【问题标题】:Looking for External IP Address on Localhost在 localhost 上查找外部 IP 地址
【发布时间】:2017-12-29 02:30:02
【问题描述】:

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

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

坦率地说,我在 IP 地址这方面的知识并不多,但我对我在网络模块中学到的客户端、服务器、IP 地址、端口号等有足够的了解。

为了提供更多信息,当您访问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;
}

我还在网上读到,我实际上可以根据以下来自 stackoverflow 的答案从网站的外部来源获取我的外部 IP 地址

Here

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

在高低搜索之后仍然无法得到我正在寻找的东西..

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

    Configure IIS Logging

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

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

    【讨论】:

    • 感谢您的帮助@Subbu .. 我不认为我想进入配置 iis 的领域,我对此一无所知.. 我会尝试使用该行你提供的代码,看看我得到了什么,然后回到这里。谢谢!
    • 抱歉更正我的输出。当我使用 HttpRequest.UserHostAddress - ::1
    • 尝试从外部网络访问您的网站。例如,在家访问(无需任何 VPN)
    • 我实际上尝试过这种方法..codeproject.com/Tips/452024/Getting-the-External-IP-Address 我得到了 219.xxx.xxx.xxx 这就是我要找的..但是这种方式安全吗?从外部站点获取我的 IP 地址。
    猜你喜欢
    • 1970-01-01
    • 2014-08-21
    • 1970-01-01
    • 1970-01-01
    • 2011-04-07
    • 2011-06-29
    • 1970-01-01
    • 2011-07-29
    • 1970-01-01
    相关资源
    最近更新 更多