关闭

根据IP地址定位城市

216人阅读 评论(0) 收藏 举报
分类:

java:

public class MainActivity extends AppCompatActivity {
    private TextView mText;
    private String mIPAddress;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mText = (TextView) findViewById(R.id.text);
    }

    public void click(View view) {
        requestIp();
    }

    private void requestIp() {
        String url = "http://2017.ip138.com/ic.asp";
        OkGo.get(url).execute(new AbsCallback<byte[]>() {


            @Override
            public byte[] convertSuccess(Response response) throws Exception {
                return new byte[0];
            }

            @Override
            public void onSuccess(byte[] bytes, Call call, Response response) {

                try {
                    //转化为GBK编码,返回结果为html格式
                    byte[] responseBytes = response.body().bytes();
                    String responseUrl = new String(responseBytes, "GBK");
                    Log.v("simon", responseUrl);
                    mText.setText(responseUrl);
                    //提取html中需要的部分
                    List resultList = getContext(responseUrl);
                    for (Iterator iterator = resultList.iterator(); iterator.hasNext(); ) {
                        String context = (String) iterator.next();
                        mText.setText(context);
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }

            }
        });
    }


    /**
     * 提取"<title>XXXX</title>"中的文字XXXX
     *
     * @param html 要解析的html文档内容
     * @return 解析结果,可以多次匹配,每次匹配的结果按文档中出现的先后顺序添加进结果List
     */
    public static List getContext(String html) {
        List resultList = new ArrayList();
        Pattern p = Pattern.compile("<center>([^</center>]*)");//匹配<title>开头,</title>结尾的文档
        Matcher m = p.matcher(html);//开始编译
        while (m.find()) {
            resultList.add(m.group(1));//获取被匹配的部分
        }
        return resultList;
    }
}

xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.simon.ipcheckdemo.MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="ip地址:"/>

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="click"
        android:text="获取ip地址"/>
</LinearLayout>

权限:

 <uses-permission android:name="android.permission.INTERNET" />

返回的数据为:
这里写图片描述

结果:
这里写图片描述

0
0
查看评论

Android附近基站+Wifi+IP+GPS多渠道定位方案

本文主要介绍了使用使用基站+Wifi+IP+GPS多渠道定位的实现方案和相关的Android源码,主要包括Google service SDK的GPS获取方式,获取手机附近基站信息的相关Android API,扫描手机wifi环境的Android API,谷歌提供的基站+Wifi热点+IP定位 AP...
  • lvshaorong
  • lvshaorong
  • 2016-06-14 17:21
  • 14338

Android 根据IP地址获取城市

Android获取手机当前所在经纬度请参考:http://blog.csdn.net/a511341250/article/details/40509931
  • a511341250
  • a511341250
  • 2014-11-19 14:26
  • 2451

Android利用IP地址定位城市(全世界可用)

最近在做项目的时候遇到一个功能,就是需要自动定位当前所在城市,然后去获取当年城市的天气,我负责做自动定位城市的功能,定位大家都知道有很多种,常用的就是大家经常用到的基站啦、GPS啦等等,一开始打算使用Google的定位服务,但是使用这个需要加一个lib包,有几百K,领导说太大了不让用,然后考虑到使用...
  • ly348018
  • ly348018
  • 2015-01-20 17:22
  • 3644

百度地图接口,根据IP地址定位当前城市

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.Reader; i...
  • u013517229
  • u013517229
  • 2017-01-18 16:48
  • 1476

如何通过IP地址进行精准定位

在甲方工作的朋友可能会遇到这样的问题,服务器或者系统经常被扫描,通过IP地址我们只能查到某一个市级城市,如下图: 当我们想具体到街道甚至门牌号,该怎么办? 偶然间发现百度地图有高精度IP定位API的接口,通过该接口我们可以通过IP地址定位到具体的地理位置,...
  • u012028371
  • u012028371
  • 2016-11-02 11:13
  • 11918

java根据ip地址获取详细地域信息

互联网有很多接口可以实现通过ip查询到具体的位置,如下: 通过淘宝IP地址库获取IP位置 1. 请求接口(GET):http://ip.taobao.com/service/getIpInfo.php?ip=[ip地址字串] 2. 响应信息:(json格式的)国家 、省(自治区或直辖市...
  • he20101020
  • he20101020
  • 2014-03-19 11:12
  • 17737

分享一个ip精准定位的站点

https://www.opengps.cn/Data/IP/LocHighAcc.aspx
  • hrayha
  • hrayha
  • 2017-07-26 16:53
  • 927

根据IP定位所在城市(HTML,js,新浪IP地址库)

1,在中引用新浪IP地址库。(网上还有其他的库) 新浪IP地址库:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js 2,引用库之后库返回一个json数据,其中city就是所在城市的名称。(点击1中的链接显示返回的数据) va...
  • wjw_27
  • wjw_27
  • 2016-10-08 17:56
  • 3159

Android 通过外网IP定位城市

Android 通过外网IP定位城市有两种方法 方法一:通过获取外网IP地址,再通过聚合数据的IP定位API 进行城市定位 方法二:通过百度地图API进行定位 (无需添加SDK)方法一获取外网IP/** * 通过CmyIP获取获取外网外网地址 需在异步线程中访问 * @return 外网I...
  • EthanCo
  • EthanCo
  • 2016-10-10 13:42
  • 2216

PHP 根据IP地址获取所在城市

有这样的需求,需要根据用户的IP地址,定位用户所在的城市。 本文记录性文章,无逻辑性。有这样需求的朋友,可以直接拷贝使用。直接上代码,不需赘述。 <?php header('Content-Type:text/html;Charset=utf-8'); function Get...
  • liruxing1715
  • liruxing1715
  • 2014-06-03 10:57
  • 54154
    个人资料
    • 访问:916次
    • 积分:82
    • 等级:
    • 排名:千里之外
    • 原创:7篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类