IP 数据查找 - C#
IP data lookup - C#
好的,所以我在谷歌上搜索了好几次关于这个的问题,但每个人都提出了尊重的体面的选择,比如:"Selenium" 工作正常,但没有 firefox 就无法使用(甚至在一个API 据我所知?)。
我有这个代码:
public byte[] GetFileViaHttp(string url)
{
using (WebClient client = new WebClient())
{
return client.DownloadData(url);
}
}
那我也有这个代码:
byte[] result = GetFileViaHttp(@"http://ip-lookup.net/");
string str = Encoding.UTF8.GetString(result);
richTextBox1.Text = str;
工作正常,return我的 IP 信息,但我想用其他 IP 地址自动执行此操作,而不是 return 我自己的。
这将如何完成?
我的意思是,我希望 API 获取 txtBox1.Text
(IP) 并将详细信息打印到 richTextBox1.Text
(Host/Country) ..
这是怎么做到的?
我浏览了该站点并找到了一份帮助文档,其中详细说明了您的需求。
只需将 IP 值作为未命名的查询字符串参数传递:
http://ip-lookup.net/?127.0.0.1
在您的代码中:
byte[] result = GetFileViaHttp(string.Format("http://ip-lookup.net?{0}", ipAddress));
你在哪里注入一个字符串 ip 地址作为 ipAddress。
您可以找到他们的帮助页面 here。我在寻找法律协议,但没有找到,所以请自行承担风险并自行决定使用。
更新:
如果收到 403,则需要传递用户代理 header。您的 WebClient 实例可以修改为在请求中包含 header。
public byte[] GetFileViaHttp(string url)
{
using (WebClient client = new WebClient())
{
client.Headers.Add("User-Agent: Other");
return client.DownloadData(url);
}
}
好的,所以我在谷歌上搜索了好几次关于这个的问题,但每个人都提出了尊重的体面的选择,比如:"Selenium" 工作正常,但没有 firefox 就无法使用(甚至在一个API 据我所知?)。
我有这个代码:
public byte[] GetFileViaHttp(string url)
{
using (WebClient client = new WebClient())
{
return client.DownloadData(url);
}
}
那我也有这个代码:
byte[] result = GetFileViaHttp(@"http://ip-lookup.net/");
string str = Encoding.UTF8.GetString(result);
richTextBox1.Text = str;
工作正常,return我的 IP 信息,但我想用其他 IP 地址自动执行此操作,而不是 return 我自己的。
这将如何完成?
我的意思是,我希望 API 获取 txtBox1.Text
(IP) 并将详细信息打印到 richTextBox1.Text
(Host/Country) ..
这是怎么做到的?
我浏览了该站点并找到了一份帮助文档,其中详细说明了您的需求。
只需将 IP 值作为未命名的查询字符串参数传递:
http://ip-lookup.net/?127.0.0.1
在您的代码中:
byte[] result = GetFileViaHttp(string.Format("http://ip-lookup.net?{0}", ipAddress));
你在哪里注入一个字符串 ip 地址作为 ipAddress。
您可以找到他们的帮助页面 here。我在寻找法律协议,但没有找到,所以请自行承担风险并自行决定使用。
更新:
如果收到 403,则需要传递用户代理 header。您的 WebClient 实例可以修改为在请求中包含 header。
public byte[] GetFileViaHttp(string url)
{
using (WebClient client = new WebClient())
{
client.Headers.Add("User-Agent: Other");
return client.DownloadData(url);
}
}