¿Cómo se realiza la validación de direcciones?


¿Es posible realizar la validación de direcciones (físicas, no de correo electrónico)? Parece que el gran número de formatos de direcciones, incluso solo en los Estados Unidos, haría que esta sea una tarea bastante difícil. Por otro lado, parece una tarea que sería necesaria para varios requisitos comerciales.

Author: Juha Syrjälä, 2008-09-25

20 answers

Aquí hay una forma gratuita de hacerlo "fuera de la caja". No es 100% perfecto, pero debe rechazar direcciones descaradamente inexistentes.

Envíe la dirección completa a el servicio web de geocodificación de Google. Este servicio intenta devolver las coordenadas exactas de la ubicación que lo alimenta, es decir, latitud y longitud.

En mi experiencia, si la dirección no es válida obtendrá un resultado de 602 del servicio. Definitivamente hay una posibilidad de falsos positivos o falsos negativos, pero usado en conjunto con otras comprobaciones de consistencia podría ser útil.

(El servicio web de geocodificación de Yahoo , por otro lado, devolverá las coordenadas del centro de la ciudad si la ciudad existe pero el resto de la dirección es falsa. Potencialmente útil, siempre y cuando preste mucha atención al campo de "precisión" en el resultado).

 23
Author: Tim Farley,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-03-05 05:55:24

Hay una serie de buenas respuestas aquí, pero la mayoría de ellas asumen que el usuario quiere una solución "API" donde debe escribir código para conectarse a un servicio de terceros y/o raspar la pantalla del USPS. Todo esto está muy bien, pero debe tenerse en cuenta en los requisitos comerciales y los costos asociados con la implementación y luego compararse con los beneficios deseados.

Dependiendo de los requisitos del negocio y la forma en que se reciben los datos en el sistema, una solución de procesamiento de direcciones en tiempo real puede ser la mejor opción. Si se requiere una solución en tiempo real, tendrá que considerar el acuerdo de licencia y las limitaciones técnicas de las API de Google Maps/Bing/Yahoo. Por lo general, limitan el número de llamadas que puede hacer cada día. La API de USPS web tools es la misma en adicional que restringen cómo / por qué puede usar su sistema y cómo se le permite usar los datos a partir de entonces.

Al mismo tiempo, hay un puñado de grandes proveedores de servicios que puede procesar fácilmente una lista estática de direcciones. Esencialmente, le das al proveedor de servicios un archivo CSV o un archivo Excel, lo limpian y te lo devuelven. Es un acuerdo de una sola vez sin compromiso u obligación a largo plazo, por lo general.

Revelación completa: Soy el fundador de SmartyStreets. Verificamos las direcciones dentro de los Estados Unidos. Somos fácilmente capaces de CASS certificar una lista y también ofrecemos una API de servicio web de verificación de direcciones . Tenemos sin cargos ocultos, contratos ni nada. Utiliza nuestro servicio hasta que ya no lo necesite y pueda alejarse. (A diferencia de las compañías de telefonía celular que requieren un contrato.)

 16
Author: Jonathan Oliver,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-26 22:25:53

USPS tiene un limpiador de direcciones en línea, que alguien ha raspado de pantalla en el servicio web de un hombre pobre. Sin embargo, si está haciendo esto con suficiente frecuencia, sería mejor solicitar una cuenta USPS y llamar a su propio webservice.

 14
Author: Mark Brackett,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-27 18:02:47

Te referiré a mi post de blog - Una lección en almacenamiento de direcciones, entro en algunas de las técnicas y algoritmos utilizados en el proceso de validación de direcciones. Mi pensamiento clave es " No seas perezoso con el almacenamiento de direcciones, te causará nada más que dolores de cabeza en el futuro!"

También hay otra pregunta de StackOverflow que hace esta pregunta. Entitled How should international geographic addresses be stored in a relational database.

 10
Author: BenAlabaster,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:17:19

En el curso del desarrollo de un servicio interno de verificación de direcciones en una empresa alemana para la que solía trabajar, me he encontrado con varias maneras de abordar este problema. Haré mi mejor esfuerzo para resumir mis hallazgos a continuación:

Software Libre y de Código Abierto

Claramente, el primer enfoque que alguien tomaría es uno de código abierto (como openstreetmap.org ), que nunca es una mala idea. Pero si realmente puede o no darle un uso bueno y confiable depende mucho de cuánto necesita confiar en los resultados.

Las direcciones son algo increíblemente variable. Verificar las direcciones de los Estados Unidos no es una tarea fácil, pero soportable, pero una vez que vaya a Europa, especialmente el Reino Unido con su extenso sistema de Código Postal, el enfoque de código abierto simplemente carecerá de datos.

Servicios web / API

Software de clase Empresarial

El dinero lo hace, obviamente. Pero no todos los negocios o desarrolladores pueden gastar ~0 0.15 por dirección búsqueda (eso es $150 por 1,000 solicitudes de API): un modelo de negocio muy costoso que la gran mayoría de las API de validación de direcciones han implementado.

Lo que terminé integrando: streetlayer API

Dado que no estaba dispuesto a adoptar el enfoque programático de verificar manualmente los datos de direcciones, finalmente llegué a la conclusión de que necesitaba una API con un precio que no hiciera que mi jefe quisiera despedirme y aún así ofrecer una API sólida y confiable resultados de la verificación internacional.

En resumen, terminé integrando una API construida por apilayer, llamada "streetlayer API". Me convenció fácilmente una simple integración JSON, resultados de validación sorprendentemente precisos y sus precios fáciles de usar para desarrolladores. Además, 100 solicitudes / mes son totalmente gratuitas.

Espero que esto ayude!

 6
Author: Frank,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-01-19 20:34:07

Hemos tenido éxito con Perfect Address.

Su base de datos tiene todos los nombres de calles y rangos de números de calles de Estados Unidos. También actúa como un analizador bastante decente para los campos de direcciones de forma libre, si tienes la suerte de tener ese tipo de datos.

 1
Author: Jason DeFontes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-25 19:25:02

He utilizado los servicios de http://www.melissadata.com Su "objeto de dirección" funciona muy bien. Es caro, sí. Pero cuando considera los costos de escribir sus propias soluciones, el costo de los datos sucios en su aplicación, los correos devueltos, las ventas perdidas y similares, los costos pueden justificarse.

 1
Author: Taptronic,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-30 14:46:49

Para los datos de dirección basados en Estados Unidos, mi empresa ha utilizado GeoStan. Tiene enlaces para C y Java (y creamos un enlace Perl). Tenga en cuenta que es un producto comercial y no es barato. Sin embargo, es bastante rápido (~300 direcciones por segundo) y ofrece características como la certificación CASS (USPS bulk mail discount), el marcado DPV (Delivery point verification) y la geocodificación LON/LAT.

Hay un módulo Perl Geo:: PostalAddress , pero utiliza heurística y no tiene el otro características mencionadas para GeoStan.

Editar: algunos han mencionado 'hacerlo usted mismo', si usted decide hacer esto, una buena fuente de información para empezar es el US Census Tiger Data Set, que contiene una gran cantidad de información sobre los EE.UU., incluyendo información de dirección.

 1
Author: Kyle Burton,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-11-11 05:27:50

También puede probar las soluciones de Calidad de datos de SAP que están disponibles tanto en una plataforma de servidor que procesa un gran número de solicitudes como en un SDK integrable si desea ejecutarlo en proceso con su aplicación. Lo usamos en nuestra aplicación y es muy robusto y escalable.

 1
Author: James Cheng,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-02-20 20:12:57

Como se ve en 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
Author: Xeoncross,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-11-12 20:42:12

Puedes probar la api "IdentifyAddress" de Pitney Bowes disponible en - https://identify.pitneybowes.com /

El servicio analiza y compara las direcciones de entrada con las bases de datos de direcciones conocidas en todo el mundo para generar un detalle estandarizado. Corrige direcciones, agrega información postal faltante y la formatea utilizando el formato preferido por la autoridad postal aplicable. También utiliza bases de datos de direcciones adicionales para que pueda proporcionar detalles mejorados, incluida la dirección calidad, tipo de dirección, transliteración (por ejemplo, de Kanji chino a caracteres latinos) y si una dirección se valida según el número de local/casa, calle o nivel de información de referencia de la ciudad.

Usted encontrará una gran cantidad de muestras y sdk disponibles en el sitio y me pareció extremadamente fácil de integrar.

 1
Author: Parag Mittal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-12-22 11:37:26

Existen empresas que prestan este servicio. Las agencias de servicio que se ocupan del correo masivo eliminarán una lista de correo completa para que esté en el formato adecuado, lo que resulta en un descuento en el franqueo. El USPS vende bases de datos de información de direcciones que se pueden utilizar para desarrollar soluciones personalizadas. También tienen listas de proveedores aprobados que proporcionan este tipo de software y servicio.

Hay algunos (pero no muchos) paquetes que tienen API para conectar la validación de direcciones en su software.

Sin embargo, tienes razón en que es un problema bastante desagradable.

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

 0
Author: Jason,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-25 18:19:11

Como se mencionó, hay muchos servicios por ahí, si está buscando validar realmente toda la dirección, le recomiendo encarecidamente que vaya con un servicio de tipo de servicio web para asegurarse de que los cambios puedan ser reconocidos rápidamente por su aplicación.

Además de los servicios enumerados anteriormente, webservice.net tiene este servicio de validación de direcciones de EE.UU. http://www.webservicex.net/WCF/ServiceDetails.aspx?SID=24

 0
Author: Mitchel Sellers,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-25 18:31:59

Validar que es una dirección válida es una cosa.

Pero si estás tratando de validar que una persona determinada vive en una dirección determinada, tu única casi-garantía sería un correo de prueba a la dirección, e incluso eso no es seguro si la persona está organizada o conoce a alguien en esa dirección.

De lo contrario, la gente podría simplemente especificar una dirección aleatoria arbitraria que saben que existe y que no significaría nada para usted.

Lo mejor que puede hacer para obtener resultados inmediatos es solicitar el el usuario envía una copia fotografiada / escaneada de la cabeza de su extracto bancario o alguna otra prueba de residencia reciente, porque al menos entonces tienen que trabajar más duro para olvidarlo, y falsificar dichas cosas se muestran fácilmente con un nivel básico de análisis forense de imágenes.

 0
Author: Kent Fredric,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-30 14:42:59

No existe una solución global. Para cualquier país es bastante difícil.

En el Reino Unido, PostOffice controla las direcciones postales y puede proporcionar (a un costo) información de direcciones para fines de validación.

Las agencias gubernamentales también mantienen una extensa lista de direcciones, y estas se recopilan centralmente en el NLPG (National Land and Property Gazetteer).

En realidad validar contra estas listas es muy difícil. La mayoría de la gente ni siquiera sabe exactamente cómo su dirección tal como está en poder de la Oficina de Correos. Algunas empresas ni siquiera saben qué número están en una calle en particular.

Lo mejor es acercarse a una empresa especializada en este tipo de cosas.

 0
Author: Kramii,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-30 14:57:54

Yahoo también tiene una API de Placemaker . Es bueno solo para ubicaciones, pero tiene un id universal para todas las ubicaciones del mundo.

Parece que no hay un estándar en la lista ISO .

 0
Author: Elzo Valugi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-07-23 16:05:01

NAICS.com está saliendo con una API que agregará todo tipo de datos comerciales clave, incluida la dirección de la calle. Esto sucedería sobre la marcha a medida que se procesan los formularios de su sitio. https://www.naics.com/business-intelligence-api /

 0
Author: Jillian Baker,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-01-10 20:43:37

Fixaddress.com servicio está disponible que proporciona los siguientes servicios,

1) Validación de direcciones.

2) Corrección de dirección.

3) Corrección ortográfica de direcciones.

4) Corregir errores fonéticos.

Fixaddress.com utiliza datos de USPS y Tiger como datos de referencia.

Para más detalles visite el siguiente enlace,

Http://www.fixaddress.com/

 0
Author: Rakesh Chaudhari,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-08 04:59:32

Un área donde las búsquedas de direcciones deben realizarse de manera confiable es para los servicios VOIP E911. Conozco empresas que utilizan de forma fiable los siguientes servicios para esto:

Bandwidth.com 9-1-1 Access API MSAG Address Validation

MSAG = Master Street Address Guide

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

SmartyStreet US Street Address API

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

 0
Author: Grokify,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-18 05:04:45

Para las direcciones de EE.UU. puede requerir un estado válido, y verificar que el zip es válido. Incluso podría comprobar que el código postal está en el estado correcto, pero más allá de eso, no creo que haya muchas pruebas que pueda ejecutar que no proporcionen muchos falsos negativos.

¿Qué está tratando de hacer prevent evitar errores simples o hacer cumplir algún tipo de verificación de identidad?

 -1
Author: Rob Walker,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-25 18:14:56