从用户获取 IP 地址



我正在硬编码IP地址以进行测试,如下所示。

string country = GetCountryByIP("173.194.113.23"); 

现在这是我的GetCountryByIP方法,其中IP地址被扔进去:

    public string GetCountryByIP(string ipAddress)
    {
        string ipResponse = IPRequestHelper("http://api.ipinfodb.com/v3/ip-country/?key=(api key deleted for security purposes)&ip=", ipAddress);
        XmlDocument ipInfoXML = new XmlDocument();
        ipInfoXML.LoadXml(ipResponse);
        XmlNodeList responseXML = ipInfoXML.GetElementsByTagName("Response");
        NameValueCollection dataXML = new NameValueCollection();
        dataXML.Add(responseXML.Item(0).ChildNodes[2].InnerText, responseXML.Item(0).ChildNodes[2].Value);
        string xmlValue = dataXML.Keys[0];
        return xmlValue;
    }

还有我的 IP 助手,用于从 api 响应:

    public string IPRequestHelper(string url, string ipAddress)
    {
        string checkURL = url + ipAddress;
        HttpWebRequest objRequest = (HttpWebRequest)WebRequest.Create(url);
        HttpWebResponse objResponse = (HttpWebResponse)objRequest.GetResponse();
        StreamReader responseStream = new StreamReader(objResponse.GetResponseStream());
        string responseRead = responseStream.ReadToEnd();
        responseStream.Close();
        responseStream.Dispose();
        return responseRead;
    }

我从 xml 中的 api 收到响应,说这是一个无效的 IP 地址。在调试模式下,url 和 ip 地址在两种方法中都正确传递到参数中。我在浏览器的地址栏中测试了正确的 url 和 ip 地址(对其进行硬编码),它工作正常。

有什么想法吗?

想通了,对不起伙计们。写在哪里:

    string checkURL = url + ipAddress;
    HttpWebRequest objRequest = (HttpWebRequest)WebRequest.Create(url);

问题是这样的:

    HttpWebRequest objRequest = (HttpWebRequest)WebRequest.Create(checkUrl);
                                                                  ^^^^^^^^

相关内容

  • 没有找到相关文章

最新更新