Я пишу класс для интеграции устройства чтения карт POS в наше программное обеспечение. Чтобы он работал, я должен знать, какой IP он использует. Поставщик услуг предоставил нам пример кода, и они делают это так: они открывают веб-сайт (http://www.ebizchargeemv.com/getip.php?mac={MAC-адрес устройства}), и он вернет IP-адрес устройства.
Я использую устройство POSLynx220 Мини. Он имеет порт Ethernet, который подключается к Интернету для связи с поставщиком услуг. Я отправляю ему данные TCP, и устройство затем управляет ПИН-код который побуждает клиента провести карту. Вероятно, это мини-компьютер, который взаимодействует с поставщиком услуг и использует PIN-код в качестве устройства ввода.
Просто любопытно, но как они это реализовали? Они реализуют это с помощью ARP? Я планирую не использовать их веб-сайт для определения IP-адреса устройства. Я видел код, который использует ARP, но использование ARP на одном из ПК не обнаруживает устройство POS.
Дополнение:
Это код, в котором я работаю мой ПК:
Dim uri As Uri = New Uri("http://www.ebizchargeemv.com/getip.php?mac=000000000000000")
Dim data As Byte()
Using client As New WebClient
data = client.DownloadData(uri)
End Using
Мне интересно, как внешний веб-сайт может определить IP-адрес внутреннего устройства, подключенного к нашей локальной сети.
Мне интересно, как внешний веб-сайт может определить IP-адрес внутреннего устройства, подключенного к нашей локальной сети.
Он просто сообщает ему информацию. Скорее всего, устройство подключается к этому веб-сайту через обычное исходящее соединение и сообщает свой MAC-адрес и локальный IP-адрес. Вместо MAC-адреса можно было использовать любой идентификатор, например серийный номер, и схема все равно работала бы.