您如何执行地址验证?[关闭]


88

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


22
无论您做什么,如果地址似乎无效,请让用户选择它实际上是有效的,而不仅仅是拒绝它,因为验证者说它是无效的。
Pim Jager

您是指“地址自动完成”还是“地址验证”?我的意思是,没有任何服务可以知道现实世界中发生的所有变化。每分钟都会出现数百万个新地址,旧地址则被拆除。我现在正在地球范围内在本地交谈。
Yevgeniy Afanasyev

Answers:


27

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

将整个地址提交到Google的地址解析网络服务。这项服务会尝试返回您输入的确切位置的坐标,即纬度和经度。

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

(另一方面,如果该镇存在,但Yahoo的地理编码Web服务将返回镇中心的坐标,但其余地址是虚假的。只要您密切注意其中的“精度”字段结果)。


4
是否有人在实时系统上实际使用过此方法?
阿斯顿

27
Google和Yahoo的TOS禁止使用其地理编码服务,除非结合使用显示给用户的地图。查找更多类似乔纳森·奥利弗(Jonathan Oliver)建议的内容。请参阅:code.google.com/apis/maps/terms.html
马特(Matt)

1
输入错误的地址时,我没有得到602的结果。
HK1 2012年

9
这确实不是选定的答案。它违反了Google的服务条款,实际上并没有真正验证地址。Google运用大量情报来“猜测”您想要的地址,即使信息略有不足。如果您说输入55 Main St,并且Google知道有50 Main St和60 main St,则Google也会返回一个地理编码。即使55 Main St并非实际,该Google也会返回平均距离的成功地理编码。存在。您需要使用像USPS这样的真实验证服务,最好是Experian或SmartyStreets。
jacurtis

1
这将成为一个很棒的区块链应用程序,每个人都可以通过存储不断变化的巨大数据库的点点滴滴来为节点做出贡献……
解码器7283年

19

这里有很多很好的答案,但是大多数假设是用户希望使用“ API”解决方案,在该解决方案中,他们必须编写代码才能连接到第三方服务和/或屏蔽USPS。这一切都很好,但应将其纳入与实施相关的业务需求和成本中,然后权衡所需的收益。

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

同时,有一些出色的服务提供商可以轻松处理静态地址列表。从本质上讲,您给服务提供商一个CSV文件或Excel文件,他们会清理它们并将其退还给您。通常,这是一项没有长期承诺或义务的一次性交易。

全面披露:我是SmartyStreets的创始人。我们会对美国境内的地址进行地址验证。我们很容易通过CASS认证列表,并且我们还提供了地址验证网络服务API。我们没有任何隐性费用,合同或任何其他内容。您可以使用我们的服务,直到不再需要它为止。(与需要签订合同的手机公司不同。)


1
完美,正是我想要的。让我说,您有风格,先生。漂亮的网站。
Cory Mawhorter 2013年

2
我们使用SmartyStreets,它很棒。
JerSchneid

17
SmartyStreet的1,000次查找费用为$ 30。为您节省了一次点击。
William Entriken '16

1,000次查询= 66 $(国际查询)
罗伯特·辛克莱

实际上,USPS为此提供了一个REST接口……但是,这是一个巨大的……如果您用脚本来敲击这个东西来验证一个充满地址的数据库,它们禁止您使用。您可以使用它来验证用户数据输入,因此可以很好地用于API匹配随机计时的Web表单。只需确保您的表单具有机器人保护功能,否则您将很快获得API访问权限DoS。同样,这仅对美国地址有用。
尼尔戴维斯

15

USPS拥有一个在线地址清除程序,有人将屏幕抓取到了一个穷人的网络服务中。但是,如果您经常这样做,那么最好申请一个USPS帐户并致电自己的Web服务


17
为了免除所有人的痛心并在三天后收到拒绝书,实际上几乎没有人被允许使用USPS自己的地址验证器。这就是为什么男生屏幕首先将其抓取的原因。严格限于非营利组织。
尼古拉斯·皮亚塞斯基

5
USPS不允许将此数据用于邮寄信件或包裹以外的任何其他用途。换句话说,您必须邮寄到您查找的地址。

16
USPS允许您在不重新销售或清理数据库的情况下进行商业用途。我们有资格获得一个帐户,并使用它来验证/修复通过我们的Web表单输入的所有地址。
marklark 2011年

2
或打算在某个时间点邮寄到。最初拒绝了我公司对USPS API的访问,但是在澄清了我们的预期用途(并声明我们不会使用API​​修复旧数据)之后,我们获得了批准。
marklark 2011年

4
仅当您要验证地址来执行邮寄或装运时,才可以使用USPS的API:secure.shippingapis.com/registration-如果您不进行邮寄或不通过USPS运送,则查找可以替代的API没有许可证限制。
马特


8

在我曾经工作过的一家德国公司中,开发内部地址验证服务的过程中,我遇到了许多解决该问题的方法。我将尽力总结以下发现:

免费的开源软件

显然,任何人都会采用的第一种方法是开源方法(例如openstreetmap.org),这绝不是一个坏主意。但是,您是否真的可以将其正确,可靠地使用,很大程度上取决于您需要多少依赖结果。

地址是一个难以置信的变化。验证美国地址不是一件容易的事,而是可以承受的,但是一旦您前往欧洲,尤其是英国,拥有广泛的邮政编码系统,那么开源方法将完全缺乏数据。

网络服务/ API

企业级软件

钱显然可以解决。但是,并非每个企业或开发人员都可以为每个地址查找花费0.15美元(对于1000个API请求而言,就是150美元)。这是一种非常昂贵的业务模型,绝大多数地址验证API都已实现。

我最终整合了什么:Streetlayer API

由于我不愿意采用编程方法来手动验证地址数据,因此我得出的结论是,我需要一个价格标签不让老板想解雇我并且仍然能够提供可靠可靠的价格的API国际验证结果。

长话短说,我最终集成了由apilayer构建的API,称为“ streetlayer API”。简单的JSON集成,出乎意料的准确验证结果以及开发人员友好的价格使我很容易相信。另外,每月100个请求是完全免费的。

希望这可以帮助!


好的答案,很抱歉,下周(2017年7月3日),Streetlayer API将关闭。每个请求的价格是否低于15美分?
克里斯(Chris

1

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


1

您也可以尝试SAP的数据质量解决方案,如果要在应用程序中运行它,则可以在服务器平台上使用它来处理大量请求,也可以尝试使用可嵌入的SDK。我们在应用程序中使用它,它非常健壮和可扩展。


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);

1

您可以尝试通过以下网址获取Pitney Bowes“ IdentifyAddress” Api:https://identify.pitneybowes.com/

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

您会在网站上找到很多样本和SDK,我发现它非常容易集成。


0

有提供这项服务的公司。处理群发邮件的服务局将清理整个邮件列表,使其格式正确,从而减少邮资。USPS出售可用于开发定制解决方案的地址信息数据库。他们还列出了提供此类软件和服务的认可供应商。

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

但是,您说的很对,这是一个很讨厌的问题。

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



0

我们通过Perfect Address获得了成功。

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


非常有趣...他们古老的网站让我怀疑他们是否仍在营业或可靠?
Anthony Griggs

自从我在使用它的公司以来已经有一段时间了。看起来好像他们没有太大变化,但他们仍然声称拥有当前数据。
詹森·德丰特斯

0

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

但是,如果您要验证给定的人居住在给定的地址,则唯一的保证将是一封发送到该地址的测试邮件,甚至不确定该人是否组织或认识该地址。

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

为了获得即时结果,您最好采取的措施是要求用户发送银行对账单或其他最近居住证明的抬头的照相/扫描副本,因为至少那样他们必须更加努力地忘记它,并且伪造说,基本的图像取证分析可以轻松显示事物。


0

没有全局解决方案。对于任何给定的国家,这充其量都是棘手的。

在英国,邮局控制邮政地址,并可以(付费)提供地址信息以进行验证。

政府机构还保留了大量地址,这些地址集中在NLPG(国家土地和财产公报)中。

实际上,根据这些列表进行验证非常困难。大多数人甚至都不知道邮政局持有的地址如何。有些企业甚至不知道他们在特定街道上的号码。

最好的选择是与专门从事这种事情的公司联系。


0

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

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

编辑:有些人提到“自己动手做”,如果您决定这样做,则美国人口普查老虎数据集是一个很好的信息来源,它包含许多有关美国的信息,包括地址信息。




0

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

1)地址验证。

2)地址更正。

3)地址拼写纠正。

4)纠正地址语音错误。

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

有关更多详细信息,请访问下面的链接,

http://www.fixaddress.com/



0

首先,消除地址验证的含义可能会有所帮助。您是否要对地址进行地理定位并确保其实际存在?您是否要确保地址接收邮件?完全公开一下,我为一家名为Service Objects的公司工作,我们提供可帮助解决这两种情况的API。我们经常从客户那里收到关于区分物理地址和邮寄地址(有时可能会有所不同)的问题,我认为这将是一个重要的区别。尽管google maps是一个非常有用的地理定位工具,但在实际验证地址以及向您提供gmaps“认为”地址所处位置之外的信息方面,它做得并不多。我们有一些博客可以帮助您进一步识别和解释这些主题:

邮寄地址与实际地址:有什么区别?

DOTS地址验证与Google Maps的区别是什么?

要回答您的问题,您绝对可以使用正确的工具和权威的数据源来执行地址验证。我们以API的形式致力于解决方案,这将有助于对地址进行地理定位和验证地址。前者将有助于实际定位地址,而后者将有助于确定地址是否有效用于邮寄。如果您有兴趣,可以在下面找到两个链接

地址验证

地址地理编码


-1

对于美国地址,您可以要求一个有效的状态,并验证邮政编码是否有效。您甚至可以检查邮政编码是否处于正确的状态,但是除此之外,我认为您可以运行很多测试,这些测试不会带来很多假阴性。

您要做什么-防止简单的错误或执行某种身份检查?


您必须使用第三方付费服务。
mmcdole

您不必使用第三方工具。USPS具有执行此操作的Web服务。
brian d foy

实际上,如果您正在执行的任务是“确保此地址对本地邮政服务可接受”,那么在美国,USPS可以被视为第二方(但这会使提交该地址的客户成为第三方)。
2015年

-1

API在解析和规范街道地址数据中可以发挥至关重要的作用。这对于识别和验证USPS等公司提供的用于邮政投递的邮件地址以及UPS和FedEx等公司提供的包裹运输而言非常有用。它们的工作方式是地址验证服务将返回解析后的街道地址,其值已标准化为USPS标准。您可以在这篇文章中找到有关它的更多信息:https : //www.tomtom.com/blog/maps/what-is-address-validation/


1
您的答案似乎质量不错,但由于到目前为止您所有的答案都包含tomtom.com的链接,因此有可能被标记为垃圾邮件。如果您尚不了解,则可能需要阅读:如何不成为垃圾邮件发送者
Ardent Coder,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.