Попытка прослушивания GET на порту 80

Я хочу иметь возможность читать URL-запросы GET, поступающие на мой сервер, например: «www.JohnAlexINL.com/ping» или «http://johnalexinl.com/» и так далее.

Я пытался использовать TCPDump, но это выдает кучу искаженной чепухи, которую я не могу понять, как преобразовать обратно в исходный запрос (я могу отслеживать источники и читать пакеты, но не могу их вернуть в URL). Я также пытался просто прослушивать свои порты TCP/UDP/HTTP, но это вызывает проблемы совместимости с Apache, что приводит к закрытию моего веб-сайта.

Я попробовал это первым
sudo tcpdump -vv -x -i lo 'port 80'
и без порта 80 позже
sudo tcpdump -vv -x -i lo

Я попробовал несколько других конфигураций, сохранил его в файл и просмотрел его, но я делал это в IDLE, поэтому я больше не помню, как именно я все это набрал. Простите за это

Я надеялся, что увижу «Handshake» TCP, запрос GET и несколько ответных пакетов, в которых есть фактические данные.

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

Выдержка:

19:45:25.293910 IP (tos 0x0, ttl 64, id 4474, offset 0, flags [DF], proto UDP (17), length 103)
    localhost.domain > localhost.36156: [bad udp cksum 0xfe9a -> 0xee1b!] 30218 q: PTR? 53.0.0.127.in-addr.arpa. 1/0/1 53.0.0.127.in-addr.arpa. PTR localhost. ar: . OPT UDPsize=65494 (75)
    0x0000:  4500 0067 117a 4000 4011 2ad6 7f00 0035
    0x0010:  7f00 0001 0035 8d3c 0053 fe9a 760a 8180
    0x0020:  0001 0001 0000 0001 0235 3301 3001 3003
    0x0030:  3132 3707 696e 2d61 6464 7204 6172 7061
    0x0040:  0000 0c00 01c0 0c00 0c00 0100 0000 0000
    0x0050:  0b09 6c6f 6361 6c68 6f73 7400 0000 29ff
    0x0060:  d600 0000 0000 00

Расскажите нам, чего вы пытаетесь достичь. Вы настраиваете веб-сервер? Хотите проанализировать низкоуровневый сетевой трафик? Начните с формулировки проблемы, которую вы пытаетесь решить.

Chris Johnson 27.06.2019 01:53

Отрывок, который вы опубликовали, представляет собой DNS-запрос по UDP, а не часть TCP-соединения.

Barmar 27.06.2019 01:55

Не цитируйте фильтр. tcpdump -vv -x -i lo port 80

Barmar 27.06.2019 01:56

@Barmar - попробовал еще раз без фильтра, ничего не изменилось; тот же вывод в терминале. Я опубликовал этот отрывок только для того, чтобы показать, что я получаю только источники, адресаты и пакеты. Меня интересует только URL-адрес, который изначально ввел пользователь, и я получаю почти все, кроме этого. Не хотел выкладывать здесь дамп. Подробное описание TCP и UPD выглядит примерно одинаково: localhost.58340 > localhost.http: Flags [S], cksum 0xfe30 (неверно -> 0x1720), seq 1056236181, win 43690, options [mss 65495, sackOK, TS val 7440351 ecr 0,nop,wscale 7], длина 0 ``` например

JohnAlexINL 27.06.2019 02:04

@ChrisJohnson - я пытаюсь отслеживать запросы GET, поступающие на мой веб-сайт, чтобы использовать сценарии Python для автоматического обновления моей базы данных. Например, я хочу иметь возможность передать запрос типа «johnalexinl.com/_rep11xupdate», а затем заставить мой скрипт Python сгенерировать текстовый файл со списком файлов, которые потребуют обновления после версии 11 программы REP для моих POS-систем.

JohnAlexINL 27.06.2019 02:08

Я бы смотрел журналы Apache вместо того, чтобы сидеть на сетевом уровне. Просто читайте журналы apache по мере их появления, когда появляется новая строка, запускайте нужное вам обновление.

geckos 27.06.2019 02:18
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
6
228
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы используете совершенно неправильный набор инструментов. Выберите простой веб-фреймворк, такой как web.py, и следуйте примерам.

Я не знал, что эта служба существует, и она распечатывает запросы GET, как настройку по умолчанию! Большое спасибо, Крис. Должно быть намного проще заставить все работать с помощью web.py

JohnAlexINL 27.06.2019 03:21

Удачи. В Python практически все, что вы можете себе представить, уже существует в виде библиотеки. Всегда лучше потратить несколько минут на поиск готового решения.

Chris Johnson 27.06.2019 03:23

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