我有一个名为getIP()的方法,它将客户端ip作为字符串返回。
如何使用此IP通过this服务获取客户端的位置。
这是我显示客户端IP地址的方式。
string IP = getIP();
lblIPAddress.Text = "IP " + IP;
如何将客户位置包括在内?
i.e. lblIPAddress.Text = "IP " + IP+ "location" ;)
答案 0 :(得分:2)
下面你可以找到一个非常简单的片段,我之前用它来从API的XML端点获取数据(我相信API没有变化,所以它仍然可以工作):
string city;
string country;
string countryCode;
decimal longitude;
decimal latitude;
XmlTextReader hostIPInfoReader = new XmlTextReader("http://api.hostip.info/?ip=" + IP);
while (hostIPInfoReader.Read()) {
if (hostIPInfoReader.IsStartElement()) {
if (hostIPInfoReader.Name == "gml:name")
city = hostIPInfoReader.ReadString();
if (hostIPInfoReader.Name == "countryName")
country = hostIPInfoReader.ReadString();
if (hostIPInfoReader.Name == "countryAbbrev")
countryCode = hostIPInfoReader.ReadString();
if (hostIPInfoReader.Name == "gml:coordinates") {
string[] coordinates = hostIPInfoReader.ReadString().Split(new char[] { ',' });
longitude = decimal.Parse(coordinates[0]);
latitude = decimal.Parse(coordinates[1]);
}
}
}
这段代码当然可以改进,但我相信这是一个很好的起点。