Data Lake Analytics 作为云上数据处理的枢纽,最近加入了通过IP地址查找对应的国家、省份、城市、ISP的函数, 今天带大家体验一下。

函数详细介绍

本次一共添加了下面这些函数:

  • ip2region: 功能最全的函数,可以获取国家,省份,城市的信息,而且支持语言切换, 但是参数较多。
  • ip_country: 获取IP地址对应的国家。
  • ip_province: 获取IP地址对应的地址/省。
  • ip_city: 获取IP地址对应的城市。
  • ip_isp: 获取IP地址对应的ISP(Internet Service Provider)的信息。
  • ip2long: 把IP地址转换成一个数字。
  • long2ip: 把数字转换成一个IP地址。

ip2region

ip2region(ip, level, lang)

参数详解:

  • ip: 要查询的IP地址
  • level: country/province/city/isp
  • lang: cn/en, 返回结果的语言

ip_country/ip_province/ip_city/ip_isp

ip_country/ip_province/ip_city/ip_isp是ip2region的一种快捷用法,参数较少,这几个函数风格类似,两种调用方式:

ip_country(ip)

ip_country(ip, lang)

参数详解:

  • ip: 要查询的IP地址
  • lang: cn/en, 返回结果的语言

ip2long/long2ip

ip2long(ip)
long2ip(longVal)

Lets make some fun!

废话不多说,我们直接来体验一下:

先来看看国内的ip:

mysql> select ip2region('115.239.210.27', 'country', 'CN'),
> ip_country('115.239.210.27'),
> ip_province('115.239.210.27'),
> ip_city('115.239.210.27'),
> ip_isp('115.239.210.27')\G
*************************** 1. row ***************************
ip2region('115.239.210.27', 'country', 'CN'): 中国
ip_country('115.239.210.27'): 中国
ip_province('115.239.210.27'): 浙江
ip_city('115.239.210.27'): 杭州
ip_isp('115.239.210.27'): 电信
1 row in set (0.14 sec)

再来看个国外的ip:

mysql> select ip2region('31.13.79.1', 'country', 'CN'),
> ip_country('31.13.79.1'),
> ip_province('31.13.79.1'),
> ip_city('31.13.79.1'),
> ip_isp('31.13.79.1')\G
*************************** 1. row ***************************
ip2region('31.13.79.1', 'country', 'CN'): 印度
ip_country('31.13.79.1'): 印度
ip_province('31.13.79.1'): 马哈拉施特拉邦
ip_city('31.13.79.1'): 孟买
ip_isp('31.13.79.1'):
1 row in set (0.08 sec)

最后咱再来切换个语言:

mysql> select ip2region('31.13.79.1', 'country', 'EN'),
> ip_country('31.13.79.1', 'EN'),
> ip_province('31.13.79.1', 'EN'),
> ip_city('31.13.79.1', 'EN'),
> ip_isp('31.13.79.1', 'EN')\G
*************************** 1. row ***************************
ip2region('31.13.79.1', 'country', 'EN'): India
ip_country('31.13.79.1', 'EN'): India
ip_province('31.13.79.1', 'EN'): Maharashtr
ip_city('31.13.79.1', 'EN'): Mumbai
ip_isp('31.13.79.1', 'EN'):
1 row in set (0.06 sec)

总结

我们今天介绍了DLA里面IP地址支持相关的一些函数,这些函数对于用户分析,特别是网站访问用户的地域分析的时候非常有用,在其它数据库里面你可能需要自己实现UDF,或者在应用层进行处理;我们DLA里面已经把这种能力内置了,并且会及时的对IP库进行更新,更多详细的介绍可以直接去我们的官网试用。

Happy DLAing!

参考资料

原文链接
更多技术干货 请关注阿里云云栖社区微信号 :yunqiinsight

DataLakeAnalytics: 解析IP地址对应的国家城市地址的能力的更多相关文章

  1. 根据IP获取所在的国家城市

    根据IP获取所在的国家城市 新浪的IP地址查询接口:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js 新浪多地域测试方法:htt ...

  2. 使用python解析ip地址

    前言 想要批量将ip地址转换为省份城市.国家或是经纬度?百度上的批量查找每次的容量太小满足不了要求?第三方库神器 - geoip2帮你解决所有烦恼. 准备工作 首先安装一下geoip2库, pip i ...

  3. 关于域名系统DNS解析IP地址的一些总结

    关于域名系统DNS(Domain Name System) 从域名中解析出IP地址. DNS主要由3部分组成: ① 名称解析器(resolver) ② 域名空间(domain name space) ...

  4. PHP 使用 GeoLiteCity 库解析 IP 为地理位置

    关于把 IP 地址转换为地理位置可以使用网络上很多的 API,好处就是不用在本地存储一个 IP 数据库,而且一般网络上的 IP 库会自动更新,不利的地方就是太依赖于网络,性能表现也可能会弱些.比如像下 ...

  5. tcp/ip 卷一 读书笔记(3)为什么既要有IP地址又要有MAC地址

    网络层 首先明确一点,并不是所有的网络之间传输数据都需要mac地址和ip地址,比如说点对点线路之间的通信就没有MAC地址,网络层使用ipx协议时就没有ip地址,但是在当前的主流网络中,我们都使用ip地 ...

  6. 获取ip,判断用户所在城市

    PHP获取IP地址 这个比较简单了,利用PHP自带函数就可以了,PHP中文手册看一下,都有现成的例子,就不过多说明了,直接上代码,A段: <? //PHP获取当前用户IP地址方法 $xp_Use ...

  7. 【TCP/IP网络编程】:03地址族与数据序列

    上一篇文章介绍了套接字的创建过程,这篇文章主要讨论分配给套接字的IP地址和端口号的相关知识. IP地址和端口号 IP(Internet Protocol,网络协议)地址是收发网络数据而分配给计算机的值 ...

  8. 安装Oracle11g时,检测到系统的主 IP 地址是 DHCP 分配的地址

    检查完成.此次检查的总体结果为: 失败 <<<< 问题: 安装检测到系统的主 IP 地址是 DHCP 分配的地址. 建议案: Oracle 支持在具有 DHCP 分配的 IP ...

  9. Java根据ip地址获取Mac地址,Java获取Mac地址

    Java根据ip地址获取Mac地址,Java获取Mac地址 >>>>>>>>>>>>>>>>>&g ...

随机推荐

  1. Delphi THashedStringList用法

    Delphi中的THashedStringList对象 Delphi在在IniFiles 单元中定义了THashedStringList类: THashedStringList = class(TSt ...

  2. HttpUrlConnection使用详解--转AAAAA

    http://hc.apache.org/httpclient-3.x/apidocs/org/apache/commons/httpclient/HttpConnection.html HttpUr ...

  3. MDK 虚拟串口 *** error 30: undefined name of virtual register

    概念说明 查看已有的虚拟寄存器 输入指令: dir vtreg 可以看到没有要配置的虚拟寄存器SxIN和SxOUT,通过查询手册可以看到所有的虚拟寄存器类型: 说明不支持.

  4. MME、PGW、SGW和PCRF的介绍

    1.简介原文连接:https://blog.csdn.net/Rong_Toa/article/details/94983607 用户面和控制面板分离2.什么是HSS?HSS有什么主要功能?HSS与H ...

  5. git -- 项目开发最常用操作记录

    官方Git - Book https://git-scm.com/book/zh/v2 ------------------------------git配置以及公钥生成--------------- ...

  6. layui之input里格式验证

    form.verify({          title: function(value){            if(value.length < 5){              retu ...

  7. 石子合并问题 /// 区间DP oj2025

    Description 在一个圆形操场的四周摆放着n堆石子.现要将石子有次序地合并成一堆. 规定每次只能选相邻的两堆石子合并成新的一堆,并将新得的这堆石子数记为该次合并的得分. 试设计一个算法,计算出 ...

  8. (转)NodeJS收发GET和POST请求

    NodeJS收发GET和POST请求 目录: 一 express框架接收 二 接收Get 三 发送Get 四 接收Post 五 发送Post 一 express框架接收 1 2 3 4 5 app.g ...

  9. spring中依赖注入

    理解依赖注入:参考https://blog.csdn.net/taijianyu/article/details/2338311 一.依赖注入让bean与bean之间以配置文件组织在一起,而不是以硬编 ...

  10. java 上传MultipartFile和String post请求

    /** * POST Multipart Request * @Description: * @param requestUrl 请求url * @param requestText 请求参数 * @ ...