2008-09-25 97 views
73

它甚至可以执行地址(物理,而不是电子邮件)验证?即使仅在美国,地址格式的数量似乎也会变得很艰巨。另一方面,这似乎是一项任务,对于几项业务需求来说是必要的。你如何进行地址验证?

+18

不管你做什么,如果地址无效,让用户选择它实际上是有效的,不要只是拒绝它,因为验证器说它是无效的。 – 2009-07-23 16:19:36

+1

旧的问题,并且因为它已关闭而暂时未更新。但是一个优秀和便宜的服务是地址验证API,地址是http://matchbox.io/#address-validation-api – Joel 2015-12-17 19:09:27

回答

23

这是一个免费的“外部”方式来做到这一点。不是100%完美,但它应该拒绝公然不存在的地址。

将整个地址提交到Google's geocoding web service。此服务会尝试返回您输入的位置的精确坐标,即经纬度。

根据我的经验,如果地址无效,您将从服务中获得602的结果。肯定存在误报或漏报的可能性,但与其他一致性检查一起使用可能有用。

Yahoo's geocoding web service,另一方面,如果城镇存在但地址的其余部分是假的,将返回城镇中心的坐标。只要您密切关注“精确”字段在结果中)。

-1

对于美国的地址,你可以需要一个有效的状态,并验证拉链是有效的。你甚至可以检查邮政编码是否处于正确的状态,但除此之外,我不认为有很多测试可以运行,不会提供很多的错误否定。

什么是你想怎么办 - 防止简单的错误或执行某种身份检查的?

+0

您必须使用第三方付费服务。 – mmcdole 2008-09-30 15:19:47

+0

您不必使用第三方工具。 USPS具有这样的网络服务。 – 2008-11-11 05:28:37

+10

大声笑 - 美国邮政网络服务* IS *第三方! – 2009-07-16 22:35:23

1

对于我们基于地址的数据我的公司已经使用GeoStan。它具有C和Java的绑定(并且我们创建了一个Perl绑定)。请注意,这是一种商业产品,并不便宜。尽管(每秒约300个地址)速度相当快,并提供了CASS认证(USPS批量邮件折扣),DPV(交付点验证)标记和LON/LAT地理编码等功能。

有一个Perl模块Geo::PostalAddress,但它使用启发式和不具有GeoStan提到的其他功能。

编辑:有些人提到了“自己动手”,如果你决定这样做,一开始的一个很好的信息来源是US Census Tiger Data Set,其中包含许多关于美国的信息,包括地址信息。

0

有些公司提供此服务。处理群发邮件的服务机构将清理整个邮寄清单,以确保邮件格式正确,从而降低邮资折扣。 USPS销售可用于开发定制解决方案的地址信息数据库。他们还拥有提供此类软件和服务的获准供应商名单。

有一些(但不是很多)包含API用于将地址验证挂钩到您的软件中。

但是,你是对的,它的一个非常讨厌的问题。

http://www.usps.com/ncsc/ziplookup/vendorslicensees.htm

0

如前所述还有许多服务,在那里,如果你正在寻找真正验证整个地址,然后我强烈建议与Web Service类型的服务将确保变更能够迅速通过您的应用程序识别。

除了上面列出的服务,webservice.net有这个美国地址验证服务。 http://www.webservicex.net/WCF/ServiceDetails.aspx?SID=24

1

我们已通过Perfect Address成功。

他们的数据库包含所有美国街道名称和街道号码范围。如果您足够幸运拥有这种数据,那么它也可以作为自由格式地址字段的相当不错的解析器。

0

验证它是一个有效的地址是一回事。

但是,如果你想验证给定的人住在一个​​给定的地址,你唯一的保证将是一个测试邮件的地址,即使这是不确定的人是否组织或知道有人在那个地址。

否则,人们可能只是指定一个他们知道存在的任意随机地址,这对您来说没有任何意义。

为了立竿见影的效果,您可以做的最好的方式是请求用户发送银行对账单或其他近期居住证明的头部的拍照/扫描副本,因为至少他们必须更努力地工作忘记它,并锻造说事情很容易显示与基本级别的图像取证分析。

1

我已经使用了http://www.melissadata.com的服务他们的“地址对象”工作得很好。它昂贵,是的。但是,如果考虑编写自己的解决方案的成本,应用程序中脏数据的成本,退回的邮件程序 - 销售损失等等,则成本可能是合理的。

0

没有全局解决方案。对于任何一个特定的国家来说,它至多是相当棘手的。

在英国,PostOffice控制邮政地址,并且可以提供(按成本)地址信息用于验证目的。

政府机构也有广泛的地址列表,这些地址集中在NLPG(国家土地和财产地名录)中。

实际上对这些列表进行验证非常困难。大多数人甚至不知道他们的地址是如何由PostOffice掌握的。一些企业甚至不知道他们在特定街道上的数量。

最好的办法是找一家专门从事这种事情的公司。

0

雅虎也有一个Placemaker API.它只适用于地理位置,但它具有所有世界地点的通用身份证。

它看起来有在ISO list没有标准。

1

您也可以尝试SAP的数据质量解决方案,是在这两个服务器平台提供正在处理大量的请求或者如果你想在程序与应用程序运行一个可嵌入SDK。我们在我们的应用程序中使用它,它非常强大和可扩展。

15

这里有很多很好的答案,但大多数都假设用户需要一个“API”解决方案,他们必须编写代码连接到第三方服务和/或屏幕刮取USPS。这一切都很好,但应该考虑到与实施相关的业务需求和成本,然后与期望的收益进行权衡。

取决于该数据被接收到系统中的业务需求和方式,实时地址处理解决方案可能是最好的选择。如果需要实时解决方案,您需要考虑Google Maps/Bing/Yahoo API的许可协议和技术限制。它们通常会限制您每天可以拨打的电话数量。美国邮政网络工具API是相同的额外限制他们如何/为什么可以使用他们的系统,以及如何允许您以后使用这些数据。

与此同时,也有很大的服务提供商可以轻松地处理地址的静态列表屈指可数。实质上,您向服务提供商提供一个CSV文件或Excel文件,他们将其清理并将其还给您。这是一次性交易,通常没有长期承诺或义务—。

全面披露:我SmartyStreets的创始人。我们确实处理了美国境内地址的验证。我们可以轻易地CASS certify a list,我们还提供了一个address verification web service API。我们没有任何隐藏的费用,合同或任何东西。你使用我们的服务,直到你不再需要它,你可以走开。 (不同于手机公司需要一个合同。)

1

由于看到reddit

$address = urlencode('1600 Pennsylvania Avenue, Washington, DC'); 
$json = json_decode(file_get_contents("http://where.yahooapis.com/geocode?q=$address&flags=J")); 
print_r($json); 
6

在我曾经工作过的德国公司开发室内地址验证服务的过程中,我遇到了很多解决此问题的方法。我会尽我所能来总结我的发现如下:

免费,开源软件

显然,第一种方法的人会采取是一个开源的一个(像openstreetmap.org),这是从来没有一个坏主意。但是,你是否真的可以把这个做好,可靠地使用,很大程度上取决于你需要依赖结果的程度。

地址是一个令人难以置信的变数。验证美国地址并不是一件容易的事情,但是可以承受,但是一旦你去了欧洲,尤其是英国,他们拥有广泛的邮政编码系统,开放源代码方法就会缺乏数据。

Web服务/ API的

企业级软件

钱得到它完成,效果显着。但并非每个企业或开发人员都可以在每个地址查找中花费大约0.15美元(对于1,000个API请求,这就是150美元) - 绝大多数地址验证API已实施的非常昂贵的商业模式。

我最终什么了整合:streetlayer API

由于我没有愿意承担核实地址数据的编程方式手动我终于得出了结论,我是需要一个API的一个价格标签不会让我的老板想要解雇我,并且仍然提供稳定可靠的国际验证结果。长话短说,我最终整合了一个由apilayer构建的API,叫做“streetlayer API”。我很容易通过简单的JSON集成,令人惊讶的准确验证结果和他们对开发人员友好的定价信服。此外,每月100个请求完全免费。

希望这会有所帮助!

0

Fixaddress.com服务提供以下服务,

1)地址验证。

2)地址更正。

3)地址拼写纠正。

4)正确解决语音错误。

Fixaddress.com使用USPS和Tiger数据作为参考数据。

对于下面的链接更详细的访问,

http://www.fixaddress.com/

1

你可以尝试Pitney Bowes公司在“IdentifyAddress”提供的API - https://identify.pitneybowes.com/

服务分析和输入地址与已知地址数据库进行比较在世界各地输出标准化的细节。它会更正地址,添加缺少的邮政信息并使用适用的邮政机构所偏好的格式对其进行格式化。我还使用其他地址数据库,以便提供更加详细的信息,包括地址质量,地址类型,音译(例如从中文汉字拉丁字符)以及是否验证了地址/房屋号码,街道或城市级别的参考信息。

您会在网站上找到很多样品和sdk,我发现它非常易于集成。