Пингует порты www.apple.com
Я создал небольшое приложение для iOS с GCDAsyncSocket, которое будет пинговать порты на сайте www.apple.com: список портов.
Например, пытаясь соединиться через TCP-порт 80 и 443, я получил статус "подключен", но при попытке 2195 и 2196 я получаю "тайм-аут".
При попытке подключиться к портам с помощью GCDAsyncUdpSocket, к какому бы порту я не подключился, я получаю "подключение", даже если некоторые порты не открыты (протестировано с помощью nmap, которое возвращает "закрыто").
Итак, у меня есть пара вопросов:
1) Я делаю что-то не так при попытке подключения к портам 2195, 2196 и т. Д.?
2) Надежен ли GCDAsyncUdpSocket? Что бы я ни пытался с этим, это проходит.
1 ответ
У вас есть несколько заблуждений здесь:
- Вы не должны пытаться подключиться ко многим портам на сервере, который вам не принадлежит, если у вас нет на это полномочий. Это называется пентестингом, и это как минимум не приятно, если не незаконно.
- Список портов, на которые вы ссылаетесь, относится не к www.apple.com, а к продуктам Apple в целом, как и к любым компьютерам MacOS. Вы можете использовать компьютер своего друга, чтобы попробовать это. Или виртуальная машина на вашем собственном компьютере.
- Протокол UDP не имеет "подключенного" состояния. Большая разница между UDP и TCP заключается в том, что TCP поддерживает соединения, а UDP - нет. "Подключенное" состояние GCDAsyncUdpSocket, вероятно, является поддельным.
Посмотрите, как определить, открыт ли порт UDP или нет.