Як виконується перевірка адреси? [зачинено]


88

Чи можливо взагалі виконати перевірку адреси (фізичну, а не електронну)? Здається, що велика кількість форматів адрес, навіть в одних лише США, зробить це досить складним завданням. З іншого боку, це здається завданням, яке було б необхідним для кількох бізнес-вимог.


22
що б ви не робили, якщо адреса здається недійсною, дозвольте користувачеві вибрати, що вона насправді дійсна, а не просто відхилити її, оскільки валідатор каже, що вона недійсна.
Пім Ягер

Ви маєте на увазі "автозаповнення адреси" або "перевірка адреси"? Я маю на увазі жодна служба ніколи не дізнається про всі зміни, що відбуваються в реальному світі. Щохвилини з’являються мільйони нових адрес, а старі зноситься. І я зараз розмовляю локально, в межах планети.
Євген Афанасьєв

Відповіді:


27

Ось безкоштовний і своєрідний "нестандартний" спосіб зробити це. Не на 100% ідеальний, але він повинен відкидати відверто неіснуючі адреси.

Надішліть всю адресу веб-службі геокодування Google . Ця служба намагається повернути точні координати місця, де ви її годуєте, тобто широту та довготу.

З мого досвіду, якщо адреса недійсна, ви отримаєте результат 602 від служби. Безумовно, існує ймовірність помилкових спрацьовувань чи помилкових негативних результатів, але, використовуючи разом з іншими перевірками узгодженості, це може бути корисно.

( Натомість веб-служба геокодування Yahoo повертає координати центру міста, якщо місто існує, але решта адреси неправдива. Потенційно корисна, якщо ви пильно звертаєте увагу на поле "точність" у результат).


4
Хтось насправді використовував цей метод у живій системі?
Астон,

27
Умови використання Google та Yahoo забороняють використовувати їхню службу геокодування, за винятком випадків, коли використовується карта, що відображається користувачеві. Знайдіть щось більше на зразок того, що запропонував Джонатан Олівер. Див .: code.google.com/apis/maps/terms.html
Метт

1
Я не отримую згаданих 602 результатів, коли ввожу неправильну адресу.
HK1

9
Це справді НЕ повинно бути обраною відповіддю. Це порушує Загальні умови використання Google, і насправді фактично не перевіряє адреси. Google використовує багато розуму, щоб "вгадати", яку адресу ви хотіли, навіть коли інформація трохи відключена. Google також поверне геокод, якщо ви скажете ввести 55 Main St, і Google знає, що існує 50 Main St і 60 Main St., він поверне успішний геокод, усереднюючи відстань, навіть якщо 55 Main St насправді не існувати. Вам потрібно скористатися справжньою службою перевірки, наприклад, USPS, бажано, або Experian, або SmartyStreets.
jacurtis

1
Це зробило б чудовий додаток Blockchain, де кожен вносить свій вклад у вузол, зберігаючи шматочки величезної постійно мінливої ​​бази даних ...
decoder7283

20

Тут є кілька хороших відповідей, але більшість з них припускають, що користувач хоче рішення "API", де він повинен написати код для підключення до сторонньої служби та / або зішкребти USPS на екрані. Це все добре і добре, але це слід враховувати до бізнес-вимог та витрат, пов’язаних із впровадженням, а потім зважувати з бажаними вигодами.

Залежно від бізнес-вимог та способу надходження даних у систему, найкращим рішенням може бути рішення обробки адрес у режимі реального часу. Якщо потрібне рішення в реальному часі, ви захочете розглянути ліцензійну угоду та технічні обмеження API Google Maps / Bing / Yahoo. Зазвичай вони обмежують кількість дзвінків, які ви можете зробити щодня. API веб-інструментів USPS однаковий, окрім того, вони обмежують, як / чому ви можете використовувати їхню систему та як вам дозволено використовувати дані в подальшому.

У той же час існує декілька чудових постачальників послуг, які можуть легко обробити статичний список адрес. По суті, ви надаєте постачальнику послуг файл CSV або файл Excel, вони очищають його і повертають вам. Це одноразова угода без довгострокових зобов’язань чи зобов’язань - як правило.

Повна інформація: Я засновник SmartyStreets. Ми перевіряємо адреси в межах США. Ми легко можемо засвідчити CASS список, і ми також пропонуємо API веб-служби перевірки адреси . У нас немає прихованих комісій, контрактів чи чогось іншого. Ви користуєтесь нашою послугою до тих пір, поки вона вам більше не потрібна, і ви зможете піти геть. (На відміну від компаній мобільних телефонів, яким потрібен контракт.)


1
Ідеально, саме те, що я шукав. І дозвольте мені сказати, що у вас є стиль, сер. Гарний сайт.
Кори Моухортер

2
Ми використовуємо SmartyStreets, і це чудово.
JerSchneid

17
Вартість SmartyStreet за 1000 запитів становить 30 доларів. Врятував вас клік.
Вільям Ентрікен

1000 пошуків = 66 $ для міжнародних
Роберт Сінклер

На насправді USPS має інтерфейс REST для цього ... Але і це ВЕЛИЧЕЗНЕ проте ... якщо ви натиснете цю річ за допомогою сценарію для перевірки бази даних , повних адрес вони будуть забороняти вам. Вам дозволено перевірити введення даних користувача за допомогою нього, тому це чудово для використання у веб-формі, де звернення API будуть довільно синхронізовані. Просто переконайтеся, що у вашій формі є захист бота, інакше ви отримаєте доступ до API DoS'd у стислі терміни. Також це добре лише для адрес у США.
Ніл Девіс,

15

USPS має адресу прибиральника онлайн , який хто - то екран Подряпини в WebService бідної людини. Однак, якщо ви робите це досить часто, було б краще подати заявку на рахунок USPS і зателефонувати власному веб- сервісу .


17
Щоб врятувати когось від печії від цього та отримання листа про відмову через три дні, майже ніхто не має права користуватися власним засобом перевірки адреси USPS. Ось чому хлопець на екрані скреб його в першу чергу. Це суворо обмежується некомерційними організаціями.
Ніколас Пясецький

5
USPS забороняє використовувати ці дані для будь-чого іншого, окрім розсилки листа або пакунку. Іншими словами, ви повинні надіслати пошту на адресу, яку ви шукаєте.

16
USPS дозволить комерційне використання IFF, щоб ви не перепродавали та не чистили свої бази даних. Ми отримали кваліфікаційний рахунок і використовуємо його для перевірки / виправлення ВСІХ адрес, які надходять через наші веб-форми.
marklark

2
Або мають намір надіслати пошту в якийсь момент часу. Спочатку моїй компанії було відмовлено у доступі до USPS API, але, роз’яснивши наше цільове використання (і заявивши, що ми не будемо використовувати API для виправлення старих даних), ми були схвалені.
marklark

4
Ви можете використовувати API USPS лише в тому випадку, якщо ви перевіряєте адресу для здійснення поштової розсилки або доставки: secure.shippingapis.com/registration - якщо ви не робите розсилки або не доставляєте через USPS, знайдіть альтернативний API, який не має ліцензійних обмежень.
Matt

9

Я перенаправляю вас до мого допису в блозі - Урок з зберігання адрес , я розглядаю деякі прийоми та алгоритми, що використовуються в процесі перевірки адреси. Моя ключова думка: "Не лінуйтеся зберігати адреси, це не заподіє вам нічого, крім головного болю в майбутньому!"

Крім того, є ще одне запитання StackOverflow, яке задає це питання. Під назвою Як слід зберігати міжнародні географічні адреси у реляційній базі даних .


8

Під час розробки внутрішньої служби перевірки адреси в німецькій компанії, в якій я працював, я натрапив на кілька способів вирішення цієї проблеми. Я зроблю все можливе, щоб підсумувати свої висновки нижче:

Безкоштовне програмне забезпечення з відкритим кодом

Очевидно, що перший підхід, який би хтось застосував, - це метод з відкритим кодом (наприклад, openstreetmap.org ), що ніколи не є поганою ідеєю. Але чи зможете ви насправді використовувати це з користю та надійністю, дуже залежить від того, наскільки вам потрібно покладатися на результати.

Адреси - річ неймовірно мінлива. Перевірка адрес у США є непростим завданням, але терпимим, але коли ви вирушите до Європи, особливо до Великобританії з їх розгалуженою системою поштових індексів, у підході з відкритим кодом просто бракуватиме даних.

Веб-служби / API

Програмне забезпечення корпоративного класу

Очевидно, гроші це роблять. Але не кожен бізнес або розробник може витратити ~ 0,15 доларів за пошук адреси (це 150 доларів за 1000 запитів API) - дуже дорога бізнес-модель, яку впровадила переважна більшість API перевірки адреси.

Що в підсумку я інтегрував: API вуличного шару

Оскільки я не хотів брати на себе програмний підхід до перевірки адресних даних вручну, я нарешті дійшов висновку, що мені потрібен API з цінником, який не змусив би мого начальника звільнити мене і все одно доставляв надійні та надійні результати міжнародної верифікації.

Коротше кажучи, я в підсумку інтегрував API, побудований apilayer, який називається "API вуличного шару". Мене легко переконала проста інтеграція JSON, напрочуд точні результати перевірки та ціна, зручна для розробників. Крім того, 100 запитів на місяць абсолютно безкоштовні.

Сподіваюся, це допомагає!


хороша відповідь, на жаль API Streetlayer вимикається наступного тижня (03.07.2017). будь-які альтернативи менш ніж за 15 відсотків на запит?
Кріс

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

Ви можете спробувати Api Pitney Bowes “IdentifyAddress”, доступний за адресою - https://identify.pitneybowes.com/

Служба аналізує та порівнює вхідні адреси з відомими базами даних по всьому світу, щоб вивести стандартизовану деталь. Він виправляє адреси, додає відсутні поштові дані та форматує їх у форматі, який надає перевагу відповідний поштовий орган. Я також використовую додаткові бази даних адрес, щоб вони могли надавати розширені деталі, включаючи якість адреси, тип адреси, транслітерацію (наприклад, з китайської канджі на латинські символи) і чи перевіряється адреса на адресу приміщення / номера будинку, вулиці чи рівня міста. довідкової інформації.

Ви знайдете багато зразків та sdk, доступних на сайті, і я знайшов його надзвичайно простим для інтеграції.


1

Однією з областей, де слід надійно виконувати пошук адреси, є послуги VOIP E911. Я знаю компанії, які надійно використовують для цього такі послуги:

Bandwidth.com 9-1-1 Перевірка адреси API API MSAG

MSAG = Путівник по вулиці майстра

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

API вуличної адреси SmartyStreet США

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


0

Є компанії, які надають цю послугу. Бюро послуг, яке займається масовою розсилкою, очистить весь список розсилки до належного формату, що призводить до знижки на поштову оплату. USPS продає бази даних адресної інформації, які можна використовувати для розробки нестандартних рішень. Вони також мають списки затверджених постачальників, які надають такий тип програмного забезпечення та послуг.

Є кілька (але не так багато) пакетів, які мають API для підключення перевірки адреси до вашого програмного забезпечення.

Однак ви маєте рацію, що це досить неприємна проблема.

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


0

Як вже згадувалося, існує багато служб, якщо ви хочете по-справжньому перевірити всю адресу, то настійно рекомендую скористатися послугою типу веб-служби, щоб переконатись, що програма швидко розпізнає зміни.

На додаток до перерахованих вище служб, webservice.net має цю службу перевірки адреси США. http://www.webservicex.net/WCF/ServiceDetails.aspx?SID=24


0

Ми досягли успіху з Perfect Address .

У їхній базі даних є всі назви вулиць у США та діапазони номерів вулиць. Також діє як досить пристойний аналізатор адресних полів у вільній формі, якщо вам пощастило мати такі дані.


Дуже цікаво ... їх старовинний веб-сайт змушує мене замислюватися, хоч вони все ще в бізнесі чи надійні?
Ентоні Гріггс,

Минув деякий час, відколи я був у компанії, де ми цим користувались. Не схоже, що вони сильно змінилися, але вони все ще стверджують, що мають поточні дані.
Джейсон Дефонтес,

0

Перевірка дійсності адреси - це одне.

Але якщо ви намагаєтесь перевірити, чи проживає дана людина за даною адресою, вашою єдиною майже гарантією буде тестове повідомлення на адресу, і навіть це непевно, якщо людина організована чи знає когось за цією адресою.

Інакше люди могли б просто вказати довільну випадкову адресу, про яку вони знають, що існує, і це для вас нічого не означало б.

Найкраще, що ви можете зробити для негайних результатів, - це попросити користувача надіслати сфотографовану / відскановану копію голови його виписки з банку або будь-який інший доказ недавнього проживання, оскільки принаймні тоді їм доведеться докласти більше зусиль, щоб забути про це, і підробка сказаних речей легко виявляється з базовим рівнем криміналістичного аналізу зображень.


0

Глобального рішення не існує. Для будь-якої країни це в кращому випадку досить складно.

У Великобританії PostOffice контролює поштові адреси та може надавати (за окрему плату) інформацію про адресу для цілей перевірки.

Урядові установи також ведуть великий перелік адрес, і вони централізовано зібрані в NLPG (National Land and Property Gazetteer).

Насправді перевірити ці списки дуже складно. Більшість людей навіть не знають, як саме їх адреса, яку вона тримає PostOffice. Деякі підприємства навіть не знають, який номер вони перебувають на певній вулиці.

Найкраще - звернутися до компанії, яка спеціалізується на подібних справах.


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/


-1

Для американських адрес ви можете вимагати дійсний штат і переконатися, що zip-код дійсний. Ви навіть можете перевірити, чи поштовий індекс у правильному стані, але, крім цього, я не думаю, що існує багато тестів, які ви могли б виконати, які не давали б багато помилкових негативів.

Що ви намагаєтесь зробити - запобігати простим помилкам або примусово проводити якусь перевірку особи?


Ви повинні скористатись платними послугами третьої сторони.
mmcdole

Вам не потрібно використовувати сторонні інструменти. USPS має веб-служби, які роблять це.
brian d foy

Насправді, якщо завдання, яке ви виконуєте, "переконайтеся, що ця адреса є прийнятною для місцевих поштових служб", то в США USPS може розглядатися як друга сторона (але тоді це робить клієнта, який подав адресу, видом третя сторона).
триплі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.