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库进行更新,更多详细的介绍可以直接去我们的官网试用。

Happy DLAing!

参考资料
题图: https://www.lifewire.com/what-is-a-static-ip-address-2626012

原文地址:https://blog.51cto.com/14031893/2352978

时间: 2024-11-01 10:39:52

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

通过新浪IP服务器获得的当前客户端IP地址对应的国家、省份或直辖市、城市信息

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getS

php 通过ip获取所在城市地址信息 获取计算机外网ip

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

在QQ里面LocList.xml抽取出来的国外国家城市数据

项目要用到国外的国家城市数据,遍地找寻不到,然后搜了搜QQ里面意外发现了LocList.xml这个东西..所以写个脚本提取成了SQL..具体LocList.xml文件大家去搜你们的QQ安装目录就有了.. 这里提供我提取出来的SQL 首先是表结构设计 其中标识id 不要设为自增 pid为直属上级id pids为所有上级id 格式是字符串 以逗号为分隔符(如无上级 则该ID为自己的ID) name为国家或城市的名称 cname别名为国家或城市代码 child是否有下级1为有 0为没有 childid

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

PHP获取IP地址 这个比较简单了,利用PHP自带函数就可以了,PHP中文手册看一下,都有现成的例子,就不过多说明了,直接上代码,A段: <? //PHP获取当前用户IP地址方法 $xp_UserIp = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"]; $xp_UserIp = ($xp_UserIp) ? $xp_Us

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

网络层 首先明确一点,并不是所有的网络之间传输数据都需要mac地址和ip地址,比如说点对点线路之间的通信就没有MAC地址,网络层使用ipx协议时就没有ip地址,但是在当前的主流网络中,我们都使用ip地址和mac地址 既然mac地址唯一,为什么还要有IP地址? 之前我们提到,mac地址是唯一的,那理论上,在任何两个设备之间,我应该都可以通过mac地址发送数据,为什么还需要ip地址? mac地址就好像个人的身份证号,人的身份证号和人户口所在的城市,出生的日期有关,但是和人所在的位置没有关系,人是会移

搭建DNS服务,反向解析ip

反向解析:根据ip地址解析为相对应的域名.域名的反向解析不是很常见,只在一些特殊场合使用,如垃圾邮件的验证. 配置文件: 主配置文件:作用于服务器本身/etc/named.conf 区域配置文件:作用于相关的域名 /etc/named.rfc1912.zones 区域数据配置文件:作用于相关域名的解析/var/named/named.localhost bind软件包的安装,bind软件包安装完成之后,会增加一个名为named的系统服务,首先对主配置文件/etc/named.conf进行编辑修改

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

上一篇文章介绍了套接字的创建过程,这篇文章主要讨论分配给套接字的IP地址和端口号的相关知识. IP地址和端口号 IP(Internet Protocol,网络协议)地址是收发网络数据而分配给计算机的值,端口号则并非赋予计算机的值,而是为了区分计算机程序所创建的不同套接字而分配给套接字的编号. 网络地址 IP地址分为如下两类,其中,IPv6是为了应对2010年前后IP地址耗尽的问题而提出的新标准.不过,目前普遍使用的主要还是IPv4,IPv6的普及可能还需要一段时间. IPv4(Internet

获取用户的IP地址和本机IP4地址

/// <summary> /// 获取用户的IP地址/// </summary> /// <returns></returns> public static string GetIPAddress() { string user_IP = string.Empty; if (System.Web.HttpContext.Current.Request.ServerVariables["HTTP_VIA"] != null) { if (

根据Ip地址与掩码 得出 子网地址与广播地址

由于给予条件优先,没有直接给出子网地址与广播地址.但是又需要这两个参数,需要我们使用ip 地址与 子网掩码得出子网地址与广播地址.思路如下: 1. 子网地址, ip地址与 子网掩码分别换算成二进制, 两者相与,那么即得出 该子网地址. 如: 192.168.1.1   255.255.255.0   子网地址为192.168.1.0 , 换算成二进制数字, 算法如下. 01100000  01010100  00000001 00000001   (192.168.1.1)& 11111111