文档章节

java获取ip和地区

吴伟祥
 吴伟祥
发布于 2018/10/17 14:34
字数 351
阅读 364
收藏 0
String s = HttpUtil.sendPost("http://pv.sohu.com/cityjson");
JSONObject jsonObject = JSONObject.parseObject(s.substring(s.indexOf("{"), s.indexOf("}") + 1));
jsonObject.get("cip");
jsonObject.get("cname");

 

/**
 * Gets ip.
 *
 * @return the ip
 */
public static String getIp() {
    String ip = null;
    try {
        String chinaz = "http://ip.chinaz.com/?nitmdw=xbnj02";
        StringBuilder builder = new StringBuilder();
        String temp;
        HttpURLConnection urlConnection = (HttpURLConnection) new URL(chinaz).openConnection();
        BufferedReader reader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream(), StandardCharsets.UTF_8));
        while ((temp = reader.readLine()) != null) {
            builder.append(temp).append("\n");
        }
        reader.close();

        Pattern p = Pattern.compile(S);
        Matcher m = p.matcher(builder.toString());
        if (m.find()) {
            String ipStr = m.group(1);
            ip = ipStr;
        }
    } catch (IOException e) {
        logger.error("", e);
    }
    return ip;
}

 

package com.zhuoan.im.webapp.common.util;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.apache.http.Consts;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.ParseException;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
/**
 * @author weixiang.wu
 */
public class HttpUtil {

    private static final CloseableHttpClient httpclient = HttpClients.createDefault();

    /**
     * 发送HttpGet请求
     * @param url
     * @return
     */
    public static String sendGet(String url) {

        HttpGet httpget = new HttpGet(url);
        CloseableHttpResponse response = null;
        try {
            response = httpclient.execute(httpget);
        } catch (IOException e1) {
            e1.printStackTrace();
        }
        String result = null;
        try {
            HttpEntity entity = response.getEntity();
            if (entity != null) {
                result = EntityUtils.toString(entity);
            }
        } catch (ParseException | IOException e) {
            e.printStackTrace();
        } finally {
            try {
                response.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return result;
    }

    /**
     * 发送HttpPost请求,参数为map
     * @param url
     * @param map
     * @return
     */
    public static String sendPost(String url, Map<String, String> map) {
        List<NameValuePair> formparams = new ArrayList<NameValuePair>();
        for (Map.Entry<String, String> entry : map.entrySet()) {
            formparams.add(new BasicNameValuePair(entry.getKey(), entry.getValue()));
        }
        UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formparams, Consts.UTF_8);
        HttpPost httppost = new HttpPost(url);
        httppost.setEntity(entity);
        CloseableHttpResponse response = null;
        try {
            response = httpclient.execute(httppost);
        } catch (IOException e) {
            e.printStackTrace();
        }
        HttpEntity entity1 = response.getEntity();
        String result = null;
        try {
            result = EntityUtils.toString(entity1);
        } catch (ParseException | IOException e) {
            e.printStackTrace();
        }
        return result;
    }

    /**
     * 发送不带参数的HttpPost请求
     * @param url
     * @return
     */
    public static String sendPost(String url) {
        HttpPost httppost = new HttpPost(url);
        CloseableHttpResponse response = null;
        try {
            response = httpclient.execute(httppost);
        } catch (IOException e) {
            e.printStackTrace();
        }
        HttpEntity entity = response.getEntity();
        String result = null;
        try {
            result = EntityUtils.toString(entity);
        } catch (ParseException | IOException e) {
            e.printStackTrace();
        }
        return result;
    }

}

 

© 著作权归作者所有

吴伟祥

吴伟祥

粉丝 34
博文 500
码字总数 285677
作品 0
泉州
后端工程师
私信 提问
加载中

评论(0)

Python or Java?Boss直聘告诉你该如何选择

点击上方“程序人生”,选择“置顶公众号” 第一时间关注程序猿(媛)身边的故事 作者 Don Lex 已获原作者授权,如需转载,请联系原作者。 前言 “人生苦短,我用 Python”,Python 的经典 ...

CSDN程序人生
2018/09/11
0
0
Python 起薪和均资都高于 Java?!

作者 | Don Lex 责编 | 郭芮 本文爬取了某直聘网站上Python和Java的招聘信息,比较了两个方向的发展前(钱)途 ,为本科生的就业方向给一个小小的建议。 爬取 在招聘网站上直接以”本科生”和...

CSDN资讯
2018/09/14
0
0
nginx反向代理获取用户真实ip

nginx做反向代理时,默认的配置后端获取到的ip都是来自于nginx,如何转发用户的真实ip到后端程序呢?如是是java后端,用获取到的是nginx的ip地址,而不是用户的真实ip. 修改nginx配置,如下: 在原来...

yysue
2018/09/29
2.5K
0
Sun升级Java应用商店

北京时间12月12日上午消息,据国外媒体报道,Sun周五发布了Java应用商店Java Store的最新测试版。 Java Store是专门用来帮助用户寻找、获取Java和JavaFX应用的服务,Sun发言人杰基·德寇斯特...

红薯
2009/12/12
425
0
java 在局域网中 获取 路由器的 mac 地址

现在 有一个 问题,办公室 是处在一个 小小的 局域网的,本人的 ip 192.168.0.48,现在想在java程序中(不是java也可以,主要是因为java socket 很好用)获取 路由器的 MAC 地址。 但是现在没有...

xianwu13
2013/01/10
2.8K
4

没有更多内容

加载失败,请刷新页面

加载更多

Java基本程序设计结构

简述 Java起源于Sun公司为机顶盒开发的一款开发语言“Oak”,由于该名称被抢注更名为“Java”。Java是基于面向对象的开发语言,其特性在于“一次编译,到处运行”,这实现依赖于JVM。 Java程...

Yongy
3分钟前
0
0
【jquery仿dataList——性能优化】模板预编译思想提高性能10倍以上!!!

那撒,IE和google性能不减反增,求高手解释....... 前言 呵呵,当然,什么预编译什么性能提高5倍以上基本上市坑爹的,这里就是为了吸引阅读量,哈哈。 上当的大哥主动顶下哇??? 正题 之前...

shzwork
7分钟前
45
0
用博客系统开发作文网站探索MYSQL数据库性能和缓存技巧[图]

用博客系统开发作文网站探索MYSQL数据库性能和缓存技巧[图] 最近忙着建站,感觉现在建站是越来越难了,但还是用ZBLOG系统建了一个作文网站,叫做求索作文网,但是发现博客系统的缺点也还是有...

原创小博客
9分钟前
25
0
LinearLayout不在ScrollView内扩展

我在ScrollView中有一个LinearLayout ,它有android:layout_height="fill_parent" ,但它没有扩展到ScrollView的整个高度。 我的布局看起来像: level layout layout_width layout_......

技术盛宴
28分钟前
20
0
docker上启动nginx,并配置修改nginx的配置文件

1.使用docker 下载nginx 镜像 docker pull nginx 2.启动nginx docker run --name nginx -p 80:80 -d nginx 这样就简单的把nginx启动了,但是我们想要改变配置文件nginx.conf ,进入容器,命令...

yuxw
32分钟前
45
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部