如何在Power BI中使用IP进行定位?

时间:2017-03-08 00:14:28

标签: sql-server powerbi powerbi-datasource

目前正在尝试通过IP从SQL-Server数据源添加用户地图。 IP要么映射到错误的位置,要么根本不使用Power BI的内置查找进行映射。

有没有办法通过IP列查询位置?或者任何已知的API为我这样做?

2 个答案:

答案 0 :(得分:1)

试试这个:freegeoip.net

http://freegeoip.net/xml/8.8.8.8

它返回:

<Response>
<IP>8.8.8.8</IP>
<CountryCode>US</CountryCode>
<CountryName>United States</CountryName>
<RegionCode>CA</RegionCode>
<RegionName>California</RegionName>
<City>Mountain View</City>
<ZipCode>94035</ZipCode>
<TimeZone>America/Los_Angeles</TimeZone>
<Latitude>37.386</Latitude>
<Longitude>-122.0838</Longitude>
<MetroCode>807</MetroCode>
</Response>

或使用JSON:

http://freegeoip.net/json/8.8.8.8

{"ip":"8.8.8.8","country_code":"US","country_name":"United States","region_code":"CA","region_name":"California","city":"Mountain View","zip_code":"94035","time_zone":"America/Los_Angeles","latitude":37.386,"longitude":-122.0838,"metro_code":807}

答案 1 :(得分:1)

我遇到了类似的问题,这就是我所做的。

  1. 我使用源数据表中的不同 IP 地址创建了一个新表
  2. 创建了一个自定义函数,用于查询 IP 地址并获取其详细信息(见底部)。
  3. 点击功能区中的添加列,然后点击调用自定义函数
  4. 查询完成后,点击新列并通过点击列右上角的图标展开表格。

-- 对我有用的函数代码

= let
    Source = (#"IP Address" as text) => let
    Source = Json.Document(Web.Contents("http://freegeoip.net/json/" & #"IP Address")),
    #"Converted to Table" = Record.ToTable(Source),
    #"Transposed Table" = Table.Transpose(#"Converted to Table"),
    #"Promoted Headers" = Table.PromoteHeaders(#"Transposed Table")
in
    #"Promoted Headers"
in
    Source

Source