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);
    }
}