DataLakeAnalytics: 解析IP地址对应的国家城市地址的能力
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库进行更新,更多详细的介绍可以直接去我们的官网试用。
参考资料
原文链接
更多技术干货 请关注阿里云云栖社区微信号 :yunqiinsight
DataLakeAnalytics: 解析IP地址对应的国家城市地址的能力的更多相关文章
- 根据IP获取所在的国家城市
根据IP获取所在的国家城市 新浪的IP地址查询接口:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js 新浪多地域测试方法:htt ...
- 使用python解析ip地址
前言 想要批量将ip地址转换为省份城市.国家或是经纬度?百度上的批量查找每次的容量太小满足不了要求?第三方库神器 - geoip2帮你解决所有烦恼. 准备工作 首先安装一下geoip2库, pip i ...
- 关于域名系统DNS解析IP地址的一些总结
关于域名系统DNS(Domain Name System) 从域名中解析出IP地址. DNS主要由3部分组成: ① 名称解析器(resolver) ② 域名空间(domain name space) ...
- PHP 使用 GeoLiteCity 库解析 IP 为地理位置
关于把 IP 地址转换为地理位置可以使用网络上很多的 API,好处就是不用在本地存储一个 IP 数据库,而且一般网络上的 IP 库会自动更新,不利的地方就是太依赖于网络,性能表现也可能会弱些.比如像下 ...
- tcp/ip 卷一 读书笔记(3)为什么既要有IP地址又要有MAC地址
网络层 首先明确一点,并不是所有的网络之间传输数据都需要mac地址和ip地址,比如说点对点线路之间的通信就没有MAC地址,网络层使用ipx协议时就没有ip地址,但是在当前的主流网络中,我们都使用ip地 ...
- 获取ip,判断用户所在城市
PHP获取IP地址 这个比较简单了,利用PHP自带函数就可以了,PHP中文手册看一下,都有现成的例子,就不过多说明了,直接上代码,A段: <? //PHP获取当前用户IP地址方法 $xp_Use ...
- 【TCP/IP网络编程】:03地址族与数据序列
上一篇文章介绍了套接字的创建过程,这篇文章主要讨论分配给套接字的IP地址和端口号的相关知识. IP地址和端口号 IP(Internet Protocol,网络协议)地址是收发网络数据而分配给计算机的值 ...
- 安装Oracle11g时,检测到系统的主 IP 地址是 DHCP 分配的地址
检查完成.此次检查的总体结果为: 失败 <<<< 问题: 安装检测到系统的主 IP 地址是 DHCP 分配的地址. 建议案: Oracle 支持在具有 DHCP 分配的 IP ...
- Java根据ip地址获取Mac地址,Java获取Mac地址
Java根据ip地址获取Mac地址,Java获取Mac地址 >>>>>>>>>>>>>>>>>&g ...
随机推荐
- Java 多线程 - 原子操作AtomicInteger & CAS(Compare-and-Swap)
原子类简介:https://www.cnblogs.com/stephen0923/p/4505902.html AtomicInteger 介绍: https://yuwenlin.iteye.co ...
- SPR, subpixel rendering
参考例子:https://www.grc.com/ctwhat.htm https://en.wikipedia.org/wiki/Subpixel_rendering http://archernz ...
- kkFileView在centos7上安装
kkFileView是使用spring boot打造文件文档在线预览项目解决方案. 项目地址:https://gitee.com/kekingcn/file-online-preview 安装步骤: ...
- 05_mybatis动态sql
1.sql片段 1.sql片段**** mybatis核心 对sql语句进行灵活操作,通过表达式进行判断,对sql进行灵活拼接.组装. 2.需求 用户信息综合查询列表和用户信息查询列表总数这两个sta ...
- 【CF622F】The Sum of the k-th Powers (拉格朗日插值法)
用的dls的板子,因为看不懂调了好久...果然用别人的板子就是这么蛋疼- -|| num数组0~k+1储存了k+2个值,且这k+2个值是自然数i的k次方而不是次方和,dls的板子自己帮你算和的...搞 ...
- Gym - 100941G
Gym - 100941G https://vjudge.net/problem/Gym-100941G比赛的时候真的是不会啊,那就没办法了.结论:每x周减一次头发,第k次剪发时的头发长度为x^k.x ...
- LoadRunner如何调用外部函数
LoadRunner如何调用外部函数 使用 VuGen 时,可以调用在外部 DLL 中定义的函数.通过从脚本调用外部函数,可以降低脚本的内存使用量以及总体运行时间.要调用外部函数,需要加载定义了该函数 ...
- python 递归计算若干工作日后的日期
import datetime # 根据第一次计算出来的休息日数,计算还需要的工作日数.(递归调用) def get_next_date(self, start_date, weekend_days) ...
- 【转】IOS获取屏窗高度踩坑之window.outerHeight
近日本人在直接使用window.outerHeight获取屏窗高度时 在iphone 6中出现等于0的情况,从而导致页面发生错误 后找遍代码,测试无数,终于让我逮住了这个该死兼容 window.out ...
- Windows相关命令
1.查看端口8080被哪个进程占用 netstat -ano | findstr "8080" 2.查看进程号为5768对应的进程 tasklist | findstr " ...