Пингует порты www.apple.com

Я создал небольшое приложение для iOS с GCDAsyncSocket, которое будет пинговать порты на сайте www.apple.com: список портов.

Например, пытаясь соединиться через TCP-порт 80 и 443, я получил статус "подключен", но при попытке 2195 и 2196 я получаю "тайм-аут".

При попытке подключиться к портам с помощью GCDAsyncUdpSocket, к какому бы порту я не подключился, я получаю "подключение", даже если некоторые порты не открыты (протестировано с помощью nmap, которое возвращает "закрыто").

Итак, у меня есть пара вопросов:

1) Я делаю что-то не так при попытке подключения к портам 2195, 2196 и т. Д.?

2) Надежен ли GCDAsyncUdpSocket? Что бы я ни пытался с этим, это проходит.

1 ответ

У вас есть несколько заблуждений здесь:

  1. Вы не должны пытаться подключиться ко многим портам на сервере, который вам не принадлежит, если у вас нет на это полномочий. Это называется пентестингом, и это как минимум не приятно, если не незаконно.
  2. Список портов, на которые вы ссылаетесь, относится не к www.apple.com, а к продуктам Apple в целом, как и к любым компьютерам MacOS. Вы можете использовать компьютер своего друга, чтобы попробовать это. Или виртуальная машина на вашем собственном компьютере.
  3. Протокол UDP не имеет "подключенного" состояния. Большая разница между UDP и TCP заключается в том, что TCP поддерживает соединения, а UDP - нет. "Подключенное" состояние GCDAsyncUdpSocket, вероятно, является поддельным.

Посмотрите, как определить, открыт ли порт UDP или нет.

Другие вопросы по тегам