日期:2014-05-20  浏览次数:20823 次

api网址是不是不能获取ip地址
没地发,就发这里了,各位给看看!多谢
问题1:
InetAddress host = InetAddress.getByName("www.baidu.com");
System.out.println(host.getHostAddress());
1) 网址有啥规范吗?例如http://www.baidu.com就无法 获取到
2)http://www.google.com/ig/api?hl=zh-cn&weather=beijing,如果解析www.google.com/ig/api?hl=zh-cn&weather=beijing返回的是本地的ip,而不是国外的ip,只有www.google.com才返回正确的ip

问题2:
URL Url = new URL("http://www.google.com/ig/api?hl=zh-cn&weather=beijing");
解析Url,应该是将url转换成ip,再进行解析的吧,那么如果无法获取括号里的ip,它是怎么运作的呢?

问题3:
我做的一个项目是通过解析天气api(例如:雅虎)获得天气信息。
利用雅虎的另一个非官方的api,因为里面的天数比较多。http://weather.yahooapis.com/forecastjson?w=2151330&d=1
但是在做的过程中遇到一个很奇怪的问题,就是和本地的dns有关,如果大家用的是自身的dns,解析出来的信息是一种情况,如果将dns首选换成8.8.8.8的话,解析出来的信息是另外一种情况,两者的信息不一样。只有8.8.8.8的才是正确的信息。这里是雅虎天气网http://weather.yahoo.com/,首页既是北京的天气。大家可以试试看。不知道是什么情况???

这里加个提醒,http://weather.yahooapis.com/forecastjson?w=2151330&d=1是需要下载的,但是如果使用谷歌浏览器好像可以直接打开。


------解决方案--------------------
1) 网址有啥规范吗?例如http://www.baidu.com就无法 获取到
—— 解析IP地址要用“域名”,你这个 http:// 是个URL(资源定位符),不是“域名”

2)http://www.google.com/ig/api?hl=zh-cn&weather=beijing,如果解析www.google.com/ig/api?hl=zh-cn&weather=beijing返回的是本地的ip,而不是国外的ip,只有www.google.com才返回正确的ip
—— 问题类似前者

解析Url,应该是将url转换成ip,再进行解析的吧,那么如果无法获取括号里的ip,它是怎么运作的呢?
—— 你定义的就是个URL对象,当然能识别URL中所包含的“域名”部分

问题3
—— DNS 支持镜像站点 和 负载均衡,所以解析出不一样的地址很正常