嗨,我正在学校的一个安全网站上登录,但这都是基于本地主机的。
我想抓住任何访问我网站的人。实际上,我想要捕获这个人正在使用的机器的外部IP地址。例如,当我运行我的网站并点击一个按钮,它会立即捕获我的外部ip地址。
坦率地说,我对ip地址这一领域知之甚少,但我对客户端、服务器、ip地址、端口号等内容有足够的了解。这是我在社交模块中学到的。
要提供更多信息,当您访问网站检查IP地址或任何其他您的ip网站时,您将获得您的外部ip地址。实际上,我想捕获这个IP地址并将其保存到我的数据库中。
我确实做了关于堆栈溢出、码项目的研究,无论我能从哪个方面找到帮助,但它总是返回::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地址,这个答案是基于下面的堆栈溢出。
但我没有试过,因为我认为这不是一个安全的方法?如果我错了请纠正我..。
还是找不到我要找的东西。
有人能帮忙吗?会很感激你的帮助!
发布于 2017-07-23 12:09:32
看来您正在读取您的服务器IP地址。
客户端IP地址可以通过:Http请求.用户主机地址读取。
您在服务器中接收的IP地址将是客户端的“公共”地址。也就是说,如果用户在代理后面,您将得到代理地址。
如果使用IIS承载网站,则可以将其配置为记录客户端IP地址。在这种情况下,不需要编写任何代码来记录IP地址。
在“W3C日志记录字段”对话框中,选择下列一个或多个选项: 客户机IP地址(C):提出请求的客户端的IP地址.
https://stackoverflow.com/questions/45264744
复制相似问题