【问题标题】:SQL IP Address To Country CodeSQL IP 地址到国家代码
【发布时间】:2014-10-21 14:18:44
【问题描述】:

我有一个填充了 IP 地址的数据库,并希望添加另一列,其中包含每个 IP 映射到的国家/地区的两个字母 Iso 区域名称。 Hostip 可以很容易地获取每个 IP 的国家/地区,但我不确定如何阅读以下 URL 在 SQL 中返回的内容。

http://api.hostip.info/country.php?ip={{某些 IP}}

【问题讨论】:

  • 这是一个简单的字符串?您将需要编写一个脚本来调用每个 IP 地址的 url,并使用结果来相应地更新记录。您没有说您使用的是哪个版本的 SQL 服务器,可以从 SQL 内部进行更新,因此请参阅此链接以获取指针。 sqlteam.com/forums/topic.asp?TOPIC_ID=111356
  • 您是否熟悉任何脚本语言或 SSIS?
  • 我通过 C# 将记录插入到数据库中,所以我想我会在那里使用一个脚本来添加该列。我只是想知道在 SQL Server 中是否有一种简单的方法可以做到这一点一个人。

标签: sql sql-server ip-address


【解决方案1】:

您正在 SQL Server 中调用 Web 服务。不是数据库的设计目的,但它可以完成:参见 Omar Frometa 的 the tutorial。 SQL Server 的说明从第 5 步开始。

但是,我认为你最好用编程语言提取 IP 地址,调用 web 服务,然后将国家代码返回给 SQL Server。

【讨论】:

  • 我通过 C# 将记录插入到数据库中,所以我想我会在那里使用一个脚本来添加该列。我只是想知道在 SQL Server 中是否有一种简单的方法可以做到这一点一个人。
  • SQL Server 是很难做到的。它是一种数据库语言,而不是通用编程语言。你最好用 C# 调用 web 服务。
【解决方案2】:

以下是使用sp_OACreate 过程从存储过程中调用 Web 服务的示例:

http://www.codeproject.com/Articles/428200/How-to-invoke-a-Web-Service-from-a-Stored-Procedur

sp_OACreate 不一定是最稳定或受支持的做事方式,所以这只是一个说明,而不是推荐。

如果您想采用此选项,请创建存储过程并调用您的 Web 服务,然后使用存储过程的结果更新您的表。

但是,如果 IP 地址是从您的 C# 程序中插入的,那么您可能应该从那里插入。

【讨论】:

    猜你喜欢
    • 2013-07-02
    • 2016-07-20
    • 2014-03-23
    • 2015-01-16
    • 2011-08-10
    • 2010-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多