没地发,就发这里了,各位给看看!多谢
问题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.   

    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 支持镜像站点 和 负载均衡,所以解析出不一样的地址很正常
      

  2.   


    最近CSDN的“页面静态化”,经常会吃楼,所以就是这个效果了。
      

  3.   

    不懂,不过对于问题3,如何解决呢?结合你的回复,我感觉是不是这样的,由于有多个服务器,通过我本地的dns解析获取到的信息是从某个服务器中返回的,那个服务器要么挂了,要么就是没有进行更新;而通过8.8.8.8获取到的信息是另一个服务器返回的,这个服务器中的信息更新了(因为这个信息经确认才是正确的)。?????我做的东西如果移植到别人的电脑里,不可能也要求别人修改DNS,那么在我这里有什么解决办法吗?例如编码绕过本地dns,将本地DNS代理或者隐藏,使得向外显示的是8.8.8.8???????
      

  4.   

    你对DNS确实不太熟悉,DNS除了可以实现镜像、分流外,还有传播问题。你命令行输入:
    nslookup
    然后:
    www.google.com看看吧,应该会给你一排地址的,每个地址都可以用。
    绕过DNS之类的做法是不合理的;如果你非想这么做,可以自己做DNS查找,然后直接在URL中写死IP就好了。