//获取请求客户端IP地址     

public final static String getIpAddress(HttpServletRequest request) throws IOException {  
         // 获取请求主机IP地址,如果通过代理进来,则透过防火墙获取真实IP地址  
         String ip = request.getHeader("X-Forwarded-For");  
         if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {  
             if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {  
                 ip = request.getHeader("Proxy-Client-IP");  
             }  
             if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {  
                 ip = request.getHeader("WL-Proxy-Client-IP");  
             }  
             if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {  
                 ip = request.getHeader("HTTP_CLIENT_IP");  
             }  
             if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {  
                 ip = request.getHeader("HTTP_X_FORWARDED_FOR");  
             }  
             if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {  
                 ip = request.getRemoteAddr();  
             }  
         } else if (ip.length() > 15) {  
             String[] ips = ip.split(",");  
             for (int index = 0; index < ips.length; index++) {  
                 String strIp = (String) ips[index];  
                 if (!("unknown".equalsIgnoreCase(strIp))) {  
                     ip = strIp;  
                     break;  
                 }  
             }  
         }  
         return ip;  
     }

     //指定伪IP地址代理请求
            String visitIP=getIpAddress(request);
            URL url = new URL("http://www.baidu.com");    
            URLConnection connection = url.openConnection();    
         
            connection.setRequestProperty("X-Forwarded-For",visitIP);
            connection.setRequestProperty("Proxy-Client-IP",visitIP);
            connection.setRequestProperty("WL-Proxy-Client-IP",visitIP);
            connection.setRequestProperty("HTTP_CLIENT_IP",visitIP);
            connection.setRequestProperty("HTTP_X_FORWARDED_FOR",visitIP);
            connection.setRequestProperty("REMOTE_ADDR",visitIP);
            connection.setRequestProperty("User-Agent","Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.142 Safari/535.19");
//            connection.setConnectTimeout(30000);
//            connection.setReadTimeout(30000);
            connection.connect();
            BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(),"UTF-8"));
            String line;    
            while((line = reader.readLine())!= null){     
                 result.append(line);    
            }
           System.out.prinlt(result.toString());

获取IP地址 & 伪装IP地址发送请求的更多相关文章

  1. [python网络编程]使用scapy修改源IP发送请求

    Python爬虫视频教程零基础小白到scrapy爬虫高手-轻松入门 https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.482434a6E ...

  2. 爬虫模块介绍--request(发送请求模块)

    爬虫:可见即可爬   # 每个网站都有爬虫协议 基础爬虫需要使用到的三个模块 requests 模块  # 模拟发请求的模块 PS:python原来有两个模块urllib和urllib的升级urlli ...

  3. webapi获取请求地址的IP

    References required: HttpContextWrapper - System.Web.dll RemoteEndpointMessageProperty - System.Serv ...

  4. 获取请求地址的IP地址

    public static String getIpAddr(HttpServletRequest request) throws Exception { String ip = request.ge ...

  5. 获取客户端IP地址的三个HTTP请求头的区别

    一.没有使用代理服务器的情况: REMOTE_ADDR = 您的 IP HTTP_VIA = 没数值或不显示 HTTP_X_FORWARDED_FOR = 没数值或不显示 二.使用透明代理服务器的情况 ...

  6. JAVA获取客户端IP地址和MAC地址

    1.获取客户端IP地址 public String getIp(HttpServletRequest request) throws Exception { String ip = request.g ...

  7. C#获取路由器外网IP,MAC地址

    C#实现的获取路由器MAC地址,路由器外网地址.对于要获取路由器MAC地址,一定需要知道路由器web管理系统的用户名和密码.至于获取路由器的外网IP地址,可以不需要知道路由器web管理系统的用户名和密 ...

  8. ASP.NET获取真正的客户端IP地址的6种方法

    Request.ServerVariables("REMOTE_ADDR") 来取得客户端的IP地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的IP地址,而不是真 ...

  9. Java里面获取当前服务器的IP地址

    public static void main(String[] args) { try { InetAddress address = InetAddress.getLocalHost();//获取 ...

随机推荐

  1. SVN数据仓库迁移

    1.在新服务器上部署环境 yum -y install subversion 2.备份原服务器数据仓库 svnadmin dump /home/myrepos >/data/svn_dump s ...

  2. kettle系列-我的开源kettle管理平台[kettle-manager]介绍

    kettle管理工具 专门为kettle这款优秀的ETL工具开发的web端管理工具. 项目简介 kettle作为非常优秀的开源ETL工具得到了非常广泛的使用,一般的使用的都是使用客户端操作管理,但问题 ...

  3. 安天AVL联合小米MIUI首擒顽固病毒“不死鸟”

    不死鸟作为希腊神话中的一种怪物,拥有不断再生的能力,每当寿限将至时,它会在巢穴中自焚,并在三天后重新复活.就在近期,安天AVL移动安全团队和小米MIUI安全中心发现了病毒界的“不死鸟”,其顽固程度之深 ...

  4. C#中的隐式类型var——详细示例解析

    从 Visual C# 3.0 开始,在方法范围中声明的变量可以具有隐式类型var.隐式类型可以替代任何类型,它的具体类型由编译器根据上下文推断而出. 下面就让我来总结下隐式类型的一些特点: 1.va ...

  5. byte[] 转十进制

    short s = 0; //一个16位整形变量,初值为 0000 0000 0000 0000 byte b1 = 1; //一个byte的变量,作为转换后的高8位,假设初值为 0000 0001 ...

  6. UWP学习记录9-设计和UI之控件和模式6

    UWP学习记录9-设计和UI之控件和模式6 1.图形和墨迹 InkCanvas是接收和显示墨迹笔划的控件,是新增的比较复杂的控件,这里先不深入. 而形状(Shape)则是可以显示的各种保留模式图形对象 ...

  7. [NHibernate]查看NHibernate生成的SQL语句

    最近接触到一个用Spring.Net结合NHIbernate的项目,第一次使用,有很多配置,数据操作一旦出问题,很难找到原因,那么如何查看NHibernate发送给数据库的SQL语句呢? 当然我们可以 ...

  8. appium如何获取conten-desc内容文本

    如何获取conten-desc内容文本 定位到该元素,通过getAttribute("name");来获取内容如:媒体报道 总结: 思路和selenium一样,可以理解为获取它的v ...

  9. git本地有修改如何强制更新

    本地有修改和提交,如何强制用远程的库更新更新.我尝试过用git pull -f,总是提示 You have not concluded your merge. (MERGE_HEAD exists). ...

  10. Tsinsen A1493 城市规划(DP + CDQ分治 + NTT)

    题目 Source http://www.tsinsen.com/A1493 Description 刚刚解决完电力网络的问题, 阿狸又被领导的任务给难住了. 刚才说过, 阿狸的国家有n个城市, 现在 ...