2014-08-27 200 views
-2

我有一个数据库充满了IP地址,并希望添加与每个IP地图的国家的两个字母Iso区域名称的另一列。 Hostip使得为每个IP获取国家相当容易,但我不确定如何阅读以下URL在SQL中返回的内容。SQL IP地址到国家代码

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

+0

这是一个简单的字符串?您需要编写一个脚本来调用您的每个IP地址的url,并使用结果相应地更新记录。你不会说你正在使用哪个版本的SQL服务器,有可能从SQL内部进行更新,所以请看这个链接指针。 http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=111356 – 2014-08-27 20:52:35

+0

您是否熟悉任何脚本语言或SSIS? – christiandev 2014-08-27 21:18:12

+0

我通过C#将记录插入到数据库中,所以我想我只会使用脚本来添加该列。我只是想知道是否有一种简单的方法可以在SQL Server中单独执行。 – 4815162342 2014-08-27 21:29:53

回答

0

要调用SQL Server中的Web服务。不是数据库设计的东西,但它可以完成:请参阅Omar Frometa的the tutorial。 SQL Server的指令从第5步开始。

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

+0

我通过C#将记录插入到数据库中,所以我想我只是使用脚本来添加该列。我只是想知道是否有一种简单的方法可以在SQL Server中单独执行。 – 4815162342 2014-08-27 21:30:13

+0

SQL Server是难以实现的方式。这是一种数据库语言,而不是一般的编程语言。你最好在C#中调用webservice。 – 2014-08-28 13:25:16

0

下面是一个使用sp_OACreate程序从存储过程中调用Web服务的一个例子:

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

sp_OACreate不一定做的事情中最稳定的或支持的方式,所以这是真的只是一个例证,而不是一个建议。

如果你想追求这个选项,你可以创建存储过程并调用你的web服务,然后用存储过程的结果更新你的表。

但是,如果从您的C#程序插入IP地址,那么您应该从那里进行操作。

+0

是的,我最终在C#中做到了,谢谢。 – 4815162342 2014-08-28 17:49:42