好吧,所以我已经多次搜索过这个问题了,但是每个人都提出了相当不错的选择,例如:“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;
工作正常,返回我的IP信息,但我想用其他IP地址自动执行此操作,而不是返回我自己的IP地址。
怎么做?
我的意思是,我希望API采用txtBox1.Text
(IP)&将详细信息打印到richTextBox1.Text
(主持人/国家/地区)..
怎么可以这样做?
答案 0 :(得分:2)
我浏览了网站,找到了一份详细说明您想要的帮助文档。
只需将IP值作为未命名的查询字符串参数传递:
http://ip-lookup.net/?127.0.0.1
在您的代码中:
byte[] result = GetFileViaHttp(string.Format("http://ip-lookup.net?{0}", ipAddress));
您要将字符串IP地址注入为ipAddress。
您可以找到他们的帮助页here。我找了一份法律协议,但我找不到合法协议,所以请自担风险和谨慎使用。
<强>更新强>
如果您获得403,则需要传递用户代理标头。您的WebClient实例可以修改为在请求中包含标题。
public byte[] GetFileViaHttp(string url)
{
using (WebClient client = new WebClient())
{
client.Headers.Add("User-Agent: Other");
return client.DownloadData(url);
}
}