api网址是不是不能获取ip地址

dogdoger 2012-09-11 06:34:20
没地发,就发这里了,各位给看看!多谢
问题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是需要下载的,但是如果使用谷歌浏览器好像可以直接打开。
...全文
275 8 打赏 收藏 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
dogdoger 2012-09-12
  • 打赏
  • 举报
回复
不懂,不过对于问题3,如何解决呢?

结合你的回复,我感觉是不是这样的,由于有多个服务器,通过我本地的dns解析获取到的信息是从某个服务器中返回的,那个服务器要么挂了,要么就是没有进行更新;而通过8.8.8.8获取到的信息是另一个服务器返回的,这个服务器中的信息更新了(因为这个信息经确认才是正确的)。?????

我做的东西如果移植到别人的电脑里,不可能也要求别人修改DNS,那么在我这里有什么解决办法吗?例如编码绕过本地dns,将本地DNS代理或者隐藏,使得向外显示的是8.8.8.8???????
MiceRice 2012-09-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
我在这个页面看不到大家的回复, 只有在管理页面才能看到,是什么情况呢??!!
[/Quote]

最近CSDN的“页面静态化”,经常会吃楼,所以就是这个效果了。
dogdoger 2012-09-12
  • 打赏
  • 举报
回复
我在这个页面看不到大家的回复, 只有在管理页面才能看到,是什么情况呢??!!
dogdoger 2012-09-12
  • 打赏
  • 举报
回复
我在这个页面看不到大家的回复, 只有在管理页面才能看到,是什么情况呢??!!
MiceRice 2012-09-12
  • 打赏
  • 举报
回复
你对DNS确实不太熟悉,DNS除了可以实现镜像、分流外,还有传播问题。

你命令行输入:
nslookup
然后:
www.google.com

看看吧,应该会给你一排地址的,每个地址都可以用。


绕过DNS之类的做法是不合理的;如果你非想这么做,可以自己做DNS查找,然后直接在URL中写死IP就好了。
gearss00 2012-09-11
  • 打赏
  • 举报
回复
问题3
MiceRice 2012-09-11
  • 打赏
  • 举报
回复
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 支持镜像站点 和 负载均衡,所以解析出不一样的地址很正常

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧