• DataLakeAnalytics: 解析IP地址对应的国家城市地址的能力


    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!

    参考资料

     

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

  • 相关阅读:
    Spring中的JDBC API
    Spring中的AOP(二)
    Nginx服务器代理静态资源
    Intellij IDEA配置Maven(内置Maven和修改本地仓库地址和阿里云中央仓库)
    Java函数传参(String的不可变性)
    Java中的前向引用与类初始化顺序
    【解决】com.mysql.cj.jdbc.Driver failed to unregister it /Abandoned connection cleanup thread
    SSM框架项目结构以及版本匹配
    Web4.0中web.xml头信息
    【解决】org.apache.tomcat.util.descriptor.web.WebXml.setVersion Unknown version string [4.0]
  • 原文地址:https://www.cnblogs.com/zhaowei121/p/10412636.html
Copyright © 2020-2023  润新知