C# IP数据查找-C
好吧,我已经在谷歌上搜索过好几次了,但每一次都提出了一些体面的选择,比如:Selenium,它运行良好,但如果没有firefox,甚至据我所知,在API中都无法使用 我有以下代码:C# IP数据查找-C,c#,web,automation,ip,lookup,C#,Web,Automation,Ip,Lookup,好吧,我已经在谷歌上搜索过好几次了,但每一次都提出了一些体面的选择,比如:Selenium,它运行良好,但如果没有firefox,甚至据我所知,在API中都无法使用 我有以下代码: public byte[] GetFileViaHttp(string url) { using (WebClient client = new WebClient()) { return client.Download
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;
然后我还有这个代码:
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 Host/Country中
如何做到这一点?我查看了整个网站,发现了一个帮助文档,详细介绍了您想要的内容 只需将IP值作为未命名的查询字符串参数传递: 在代码中:
byte[] result = GetFileViaHttp(string.Format("http://ip-lookup.net?{0}", ipAddress));
将字符串ip地址作为ipAddress注入
你可以找到他们的帮助页面。我找了一份法律协议,但找不到,所以请自行决定是否使用
更新:
如果得到403,则需要传递一个用户代理头。您的WebClient实例可以修改为在请求中包含标头
public byte[] GetFileViaHttp(string url)
{
using (WebClient client = new WebClient())
{
client.Headers.Add("User-Agent: Other");
return client.DownloadData(url);
}
}
最有可能的方法是将IP地址与GetFileViaHttp调用一起传递。然而由于它是一个外部资源,您可能应该检查他们是否有任何文档,1告诉您如何操作,2为您提供以自动方式使用此API的合法权利。其他信息:远程服务器返回错误:403禁止。@Hellooo123我已修改我的答案以解决您的403问题问题。这是一个很好的答案,谢谢。进一步的问题是如何删除HTML信息?字符串。替换会很棘手。不客气。对于一个全新的线程来说,这是一个很好的问题。我会先研究一下Html敏捷包,如果你被卡住了,我会写一个新问题。