Java 域名能访问IP地址不能访问的问题.

公司GPS信息从GPS服务商那里获取.域名  http://ips2.huoyunren.com/ .

但是最近服务器DNS一直出错,要求接口访问从域名换成IP地址.

ping 上面的网址

可以得到IP地址.

奇怪的事情发生了!!! 用域名可以访问,但是通过IP访问就报404错误.类似的情况在 淘宝网(www.taobao.com)上也出现过.

程序拿到域名后,去DNS服务器解析成IP地址,之后根据IP地址访问.这样的话,为什么根据IP地址不能访问网站了呢?

打开Google浏览器,F12进入调试模式,分别用域名和IP地址访问,分析http请求头可以发现,二者区别在一个 host 的参数上.问题就出在这里.

猜测服务器根据 host ,分发其它服务器响应请求.所以根据IP地址访问报404错误.

代码调整加入HOST 参数:

            URL url = new URL(urlStr);
            connection = (HttpURLConnection) url.openConnection();
            connection.setRequestProperty("HOST", host);

再次访问就OK了

时间: 2024-11-13 23:53:51

Java 域名能访问IP地址不能访问的问题.的相关文章

java struts2入门学习实例--将客户端IP地址和访问方式输出到浏览器

实例1:实现客户端IP地址和访问方式输出到浏览器. IpAction.java package com.amos.web.action; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSup

mysql数据库可以远程连接或者说用IP地址可以访问

mysql数据库可以远程连接或者说用IP地址可以访问 一般情况不建议直接修改root的权限, 先看下,自己mysql数据库的用户级权限 mysql -u root -p----->用root登陆   use mysql------->切换到mysql数据库(这个mysql是数据库的名字,---->安装的时候系统自带的吧) 可以看到我的是这样的,至于为什么有2个root我还不太清楚,我记得mysql安装的时候有个选项是---(是否可以远程访问)可能第一个root是这个作用吧,而我们常用的是

详谈再论JAVA获取本机IP地址

首先,你如果搜索“JAVA获取本机IP地址”,基本上搜到的资料全是无用的.比如这篇:http://www.cnblogs.com/zrui-xyu/p/5039551.html实际上的代码在复杂环境下是不准的 网上一个比较普遍的说法是InetAddress.getLocalHost().getHostAddress()似乎很简单,但忽略了一个问题,即IP地址在现在的网络环境更加复杂了,比如有Lan,WIFI,蓝牙热点,虚拟机网卡...即存在很多的网络接口(network interfaces),

用java获取本机IP地址

在网上找了几个用java获取本机IP地址的代码,发现都少都有些不完美,自己整理了一下.突然之间很想把自己的IP地址给获取了,虽然用系统自带命令可 以得到,但自己想写一个程序获取一下,到网上搜索了一下java获取本机IP地址的方法,结果居然发现没有一个是可以用的,气的我老人家吐血, 这些人闭着眼睛写程序,写完了就往网上发,也不测试一下,害的我以为自己RP问题,老是获取不到正确的IP地址,强烈谴责!!!为了表示鄙视,现把网上找到的主要的两种方法的不足给指出一下方法一(只能在Windows上使用,Li

JAVA将整数表示的ip地址转换为字符串表示

/** * 将整数表示的ip地址转换为字符串表示. * * @param ip 32位整数表示的ip地址 * @return 点分式表示的ip地址 */ public static final String long2Ip(final long ip) { final long[] mask = { 0x000000FF, 0x0000FF00, 0x00FF0000, 0xFF000000 }; final StringBuilder ipAddress = new StringBuilder

java获取客户端请求ip地址

public static String getIpAddr(HttpServletRequest request) { if (null == request) { return null; } String proxs[] = { "X-Forwarded-For", "Proxy-Client-IP", "WL-Proxy-Client-IP", "HTTP_CLIENT_IP", "HTTP_X_FORWAR

java获取双网卡ip地址

package com.et59.License; import java.net.InterfaceAddress; import java.net.NetworkInterface; import java.net.SocketException; import java.util.Collections; import java.util.Enumeration; import java.util.List; /** * * <p>Title: ListNets.java</p&g

.htaccess根据IP地址限制访问

屏蔽IP地址 屏蔽IP地址有时是非常必要的,比如对于一个外贸公司网站,来自国内的访问是不会带来任何经济效益的,而且还占用服务器资源,造成访问延迟等问题. 如果要屏蔽某一特定IP可以使用: order allow,deny deny from 192.168.0.1 allow from all 如果想要屏蔽多个IP地址,只需多加几个deny from 即可 order allow,deny deny from 192.168.0.2 deny from 192.168.0.3 deny from

配置DHCP和NAT,实现用户动态获取IP地址并访问Internet公网

Router作为某企业出口网关.该企业包括两个部门A和B,分别为部门A和B内终端规划两个地址网段:10.10.1.0/25和10.10.1.128/25,网关地址分别为10.10.1.1/25和10.10.1.129/25.部门A内PC为办公终端,地址租用期限为30天,域名为huawei.com,DNS服务器地址为10.10.1.2.部门B地址租用期限为30天,域名为huawei.com,DNS服务器地址为10.10.1.2.企业内地址规划为私网地址,且需要访问Internet公网,因此,需要通