你如何进行地址验证?

时间:2008-09-25 18:09:13

标签: validation street-address

甚至可以执行地址(物理而非电子邮件)验证吗?看起来大量的地址格式,即使仅在美国,也会使这个任务变得相当困难。另一方面,对于多个业务需求而言,这似乎是一项必要的任务。

20 个答案:

答案 0 :(得分:25)

这是一种免费的“开箱即用”方式。不是100%完美,但它应该拒绝公然不存在的地址。

将整个地址提交至Google's geocoding web service。此服务会尝试返回您提供该位置的确切坐标,即纬度和经度。

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

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

答案 1 :(得分:17)

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

根据业务要求和数据接收到系统的方式,实时地址处理解决方案可能是最好的选择。如果需要实时解决方案,您需要考虑Google Maps / Bing / Yahoo API的许可协议和技术限制。它们通常会限制您每天可以拨打的电话数量。 USPS网络工具API是相同的,它们限制了您使用系统的方式/原因以及此后如何允许您使用这些数据。

与此同时,有一些优秀的服务提供商可以轻松处理静态地址列表。从本质上讲,您向服务提供商提供CSV文件或Excel文件,然后将其清理并将其恢复给您。这是一次性的交易,没有长期的承诺或义务 - 通常。

完全披露:我是SmartyStreets的创始人。我们确实解决了美国境内地址的验证问题。我们很容易CASS certify a list,我们也提供了address verification web service API。我们没有隐藏的费用,合同或任何东西。你使用我们的服务,直到你不再需要它,你可以走开。 (与需要合同的手机公司不同。)

答案 2 :(得分:14)

USPS有一个地址清除online,有人screen scraped进入穷人的网络服务。但是,如果您经常这样做,最好申请USPS account并调用自己的webservice

答案 3 :(得分:10)

我会将您推荐给我的博客文章 - A lesson in address storage,我将介绍一些在地址验证过程中使用的技术和算法。我的主要想法是“不要对地址存储感到懒惰,以后会让你感到头痛!”

此外,还有另一个StackOverflow问题询问此问题。标题为How should international geographic addresses be stored in a relational database

答案 4 :(得分:7)

在我曾经为一家德国公司开发内部地址验证服务的过程中,我曾经遇到过多种解决这个问题的方法。我将尽力总结下面的调查结果:

免费的开源软件

显然,任何人都会采用的第一种方法是开源方法(如openstreetmap.org),这绝不是一个坏主意。但是,你是否能真正把它用于良好和可靠的使用,在很大程度上取决于你需要多少依赖结果。

地址是一个令人难以置信的变数。验证美国地址并非易事,但可以忍受,但一旦您前往欧洲,特别是英国拥有广泛的邮政编码系统,开源方法就会缺乏数据。

网络服务/ API

企业级软件

显然,金钱完成了它。但并非每个企业或开发人员都可以为每个地址查找花费大约0.15美元(对于1,000个API请求来说是150美元) - 这是绝大多数地址验证API实现的非常昂贵的商业模式。

我最终整合了什么:streetlayer API

由于我不愿意采用手动验证地址数据的程序化方法,我终于得出结论,我需要一个带有价格标签的API,这不会让我的老板想解雇我并仍然提供稳固可靠的国际核查结果。

长话短说,我最终整合了由apilayer构建的API,名为" streetlayer API"。通过简单的JSON集成,令人惊讶的准确验证结果和开发人员友好的定价,我很容易相信。此外,每月100个请求是完全免费的。

希望这有帮助!

答案 5 :(得分:1)

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

有一个Perl模块Geo::PostalAddress,但它使用启发式方法,并且没有为GeoStan提及的其他功能。

编辑:有人提到'自己动手',如果你决定这样做,那么一个很好的信息来源就是US Census Tiger Data Set,其中包含很多关于美国的信息,包括地址信息

答案 6 :(得分:1)

您可以在 - https://identify.pitneybowes.com/

尝试Pitney Bowes“识别地址”Api

该服务分析并比较输入地址与世界各地的已知地址数据库,以输出标准化细节。它纠正地址,添加丢失的邮政信息,并使用适用的邮政机构首选的格式对其进行格式化。我还使用额外的地址数据库,因此它可以提供增强的细节,包括地址质量,地址类型,音译(例如从中文汉字到拉丁字符)以及地址是否被验证到房屋/门牌号码,街道或城市级别参考信息。

您可以在网站上找到大量样本和sdk,我发现它非常容易集成。

答案 7 :(得分: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);

答案 8 :(得分:1)

您还可以尝试SAP的数据质量解决方案,这些解决方案既可以在服务器平台中处理大量请求,也可以作为可嵌入式SDK(如果您希望在应用程序中运行它)。我们在我们的应用程序中使用它,它非常强大和可扩展。

答案 9 :(得分:1)

我使用了http://www.melissadata.com的服务他们的“地址对象”效果很好。它的价格昂贵,是的。但是,当您考虑编写自己的解决方案的成本,应用程序中的脏数据成本,返回的邮件程序 - 销售损失等等 - 成本是合理的。

答案 10 :(得分:1)

我们在Perfect Address取得了成功。

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

答案 11 :(得分:0)

没有全球解决方案。对于任何一个国家来说,它充其量是相当棘手的。

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

政府机构也会保留一份广泛的地址清单,这些地址在NLPG(国家土地和财产地名录)中集中整理。

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

最好的办法是找一家专门从事此类工作的公司。

答案 12 :(得分:0)

雅虎还有一个Placemaker API.它仅适用于地理位置,但它具有适用于所有世界各地的通用ID。

看来ISO list中没有标准。

答案 13 :(得分:0)

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

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

否则人们只能指定他们知道存在的任意随机地址,这对你没有任何意义。

您可以做的最好的立即结果是要求用户发送他们的银行对帐单头或其他一些近期居住证明的照片/扫描副本,因为至少他们必须更加努力地忘记它和伪造的东西很容易通过基本的图像取证分析显示出来。

答案 14 :(得分:0)

如上所述,有许多服务,如果您希望真正验证整个地址,那么我强烈建议您使用Web服务类型服务,以确保您的应用程序可以快速识别更改。

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

答案 15 :(得分:0)

NAICS.com推出了一个API,可以添加各种关键业务数据,包括街道地址。这将在您的网站表单处理时即时发生。 https://www.naics.com/business-intelligence-api/

答案 16 :(得分:0)

有些公司提供此服务。处理群发邮件的服务机构会将整个邮件列表清理成适当的格式,这样可以获得邮资折扣。 USPS销售可用于开发定制解决方案的地址信息数据库。他们还提供了提供此类软件和服务的已批准供应商列表。

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

然而,你说这是一个非常讨厌的问题。

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

答案 17 :(得分:0)

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

1)地址验证。

2)地址更正。

3)地址拼写纠正。

4)正确解决语音错误。

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

有关详细信息,请访问以下链接,

http://www.fixaddress.com/

答案 18 :(得分:0)

必须可靠地执行地址查找的一个领域是VOIP E911服务。我知道公司可靠地使用以下服务:

Bandwidth.com 9-1-1访问API MSAG地址验证

MSAG =主街道地址指南

https://www.bandwidth.com/9-1-1/

SmartyStreet 美国街道地址API

https://smartystreets.com/docs/cloud/us-street-api

答案 19 :(得分:-1)

对于美国地址,您可以要求有效状态,并验证该zip是否有效。您甚至可以检查邮政编码是否处于正确的状态,但除此之外我不认为您可以运行许多测试,这些测试不会产生大量的漏报。

您打算做什么 - 防止出现简单错误或执行某种身份检查?