-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path8
More file actions
40 lines (27 loc) · 7.77 KB
/
8
File metadata and controls
40 lines (27 loc) · 7.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
8
Ошибка преобразования имени в IP адрес
Попробуем вместо имени хоста miminet.ru подставить несуществующее имя, например, miminet.rus.
HOST = "miminet.rus"
Для этого изменим имя хоста в переменной HOST и запустим наш код. В результате мы получим ошибку:
ilya@net:~/network-programming$ python3 tcp-client-2-hostname.py
Socket error: [Errno -2] Name or service not known
ilya@net:~/network-programming$
Ответ когда запустил iDONi:
b'HTTP/1.1 200 OK\r\nServer: nginx/1.25.4\r\nDate: Sun, 10 Aug 2025 12:34:27 GMT\r\nContent-Type: text/html; charset=utf-8\r\nContent-Length: 26422\r\nConnection: close\r\nVary: Cookie\r\n\r\n<!DOCTYPE html>\n<html lang="en">\n<head>\n\n <!-- Google Tag Manager -->\n <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({\'gtm.start\':\nnew Date().getTime(),event:\'gtm.js\'});var f=d.getElementsByTagName(s)[0],\nj=d.createElement(s),dl=l!=\'dataLayer\'?\'&l=\'+l:\'\';j.async=true;j.src=\n\'https://www.googletagmanager.com/gtm.js?id=\'+i+dl;f.parentNode.insertBefore(j,f);\n})(window,document,\'script\',\'dataLayer\',\'GTM-KT5XZVF\');</script>\n<!-- End Google Tag Manager -->\n\n\n <link rel="icon" href="/images/favlogo.ico" type="image/x-icon">\n <meta charset="utf-8">\n <meta name="viewport" content="width=device-width, initial-scale=1">\n <meta name="description" content="\xd0\xad\xd0\xbc\xd1\x83\xd0\xbb\xd1\x8f\xd1\x82\xd0\xbe\xd1\x80 \xd0\xba\xd0\xbe\xd0\xbc\xd0\xbf\xd1\x8c\xd1\x8e\xd1\x82\xd0\xb5\xd1\x80\xd0\xbd\xd0\xbe\xd0\xb9 \xd1\x81\xd0\xb5\xd1\x82\xd0\xb8 \xd0\xb4\xd0\xbb\xd1\x8f \xd0\xbe\xd0\xb1\xd1\x80\xd0\xb0\xd0\xb7\xd0\xbe\xd0\xb2\xd0\xb0\xd1\x82\xd0\xb5\xd0\xbb\xd1\x8c\xd0\xbd\xd1\x8b\xd1\x85 \xd1\x86\xd0\xb5\xd0\xbb\xd0\xb5\xd0\xb9 \xd0\xbd\xd0\xb0 \xd0\xb1\xd0\xb0\xd0\xb7\xd0\xb5 \xd0\x9e\xd0\xa1 Linux">\n <meta name="author" content="\xd0\x98\xd0\xbb\xd1\x8c\xd1\x8f \xd0\x97\xd0\xb5\xd0\xbb\xd0\xb5\xd0\xbd\xd1\x87\xd1\x83\xd0\xba, \xd0\x97\xd0\xb8\xd0\xbd\xd0\xb0\xd0\xb8\xd0\xb4\xd0\xb0 \xd0\xa0\xd0\xbe\xd0\xbc\xd0\xb0\xd0\xbd\xd0\xbe\xd0\xb2\xd0\xb0">\n\n <title>\xd0\xad\xd0\xbc\xd1\x83\xd0\xbb\xd1\x8f\xd1\x82\xd0\xbe\xd1\x80 \xd0\xba\xd0\xbe\xd0\xbc\xd0\xbf\xd1\x8c\xd1\x8e\xd1\x82\xd0\xb5\xd1\x80\xd0\xbd\xd0\xbe\xd0\xb9 \xd1\x81\xd0\xb5\xd1\x82\xd0\xb8</title>\n\n \n\n <!-- Vendor Styles -->\n <link rel="stylesheet" media="screen" href="/assets/vendor/boxicons/css/boxicons.min.css"/>\n <link rel="stylesheet" media="screen" href="/assets/vendor/nouislider/dist/nouislider.min.css"/>\n\n\n <!-- Main Theme Styles + Bootstrap -->\n <link rel="stylesheet" media="screen" href="/assets/css/theme.min.css">\n <link rel="stylesheet" media="screen" href="/assets/css/style.css">\n\n</head>\n<body>\n<!-- Google Tag Manager (noscript) -->\n<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-KT5XZVF"\nheight="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>\n<!-- End Google Tag Manager (noscript) -->\n\n\n<nav class="header navbar navbar-expand-lg position-absolute navbar-sticky">\n <div class="container">\n <a href="/" class="navbar-brand">\n <img src="/images/logo.png" width="170" alt="Miminet">\n </a>\n\n \n \n \n <div class="navbar-nav">\n <li id="courses-nav-item" class="nav-item">\n <a class="nav-link" href="/course">\xd0\xa3\xd1\x87\xd0\xb5\xd0\xb1\xd0\xbd\xd1\x8b\xd0\xb5 \xd0\xba\xd1\x83\xd1\x80\xd1\x81\xd1\x8b</a>\n </li>\n <li id="trainer-nav-item" id="trainer-nav-item" class="nav-item">\n <a class="nav-link" href="/auth/login.html">\xd0\xa2\xd0\xb5\xd1\x81\xd1\x82\xd0\xb8\xd1\x80\xd0\xbe\xd0\xb2\xd0\xb0\xd0\xbd\xd0\xb8\xd0\xb5</a>\n </li>\n <li id="examples-nav-item" class="nav-item">\n <a class="nav-link" href="/examples">\xd0\x9f\xd1\x80\xd0\xb8\xd0\xbc\xd0\xb5\xd1\x80\xd1\x8b \xd1\x81\xd0\xb5\xd1\x82\xd0\xb5\xd0\xb9</a>\n </li>\n <li id="auth-nav-item" class="nav-item">\n <a href="/auth/login.html" class="btn btn-outline-primary">\n <i class="bx fs-5 lh-1 me-1"></i>\xd0\x92\xd1\x85\xd0\xbe\xd0\xb4\n </a>\n </li>\n </div>\n \n \n \n\n </div>\n</nav>\n\n\n\n\n\n\n\n<main>\n <section class="py-5 position-relative overflow-hidden">\n <div class="container my-lg-5">\n <div class="row">\n <div class="col-md-5">\n <div id="index_network_example" class="border border-light" style="height: 300px;cursor: pointer"></div>\n </div>\n <div class="col-md-7">\n <div class="d-flex align-items-center justify-content-center text-center" style="height: 300px;">\n <p class="fs-2">\xd0\xad\xd0\xbc\xd1\x83\xd0\xbb\xd1\x8f\xd1\x82\xd0\xbe\xd1\x80 \xd0\xba\xd0\xbe\xd0\xbc\xd0\xbf\xd1\x8c\xd1\x8e\xd1\x82\xd0\xb5\xd1\x80\xd0\xbd\xd0\xbe\xd0\xb9 \xd1\x81\xd0\xb5\xd1\x82\xd0\xb8 \xd0\xb4\xd0\xbb\xd1\x8f \xd0\xbe\xd0\xb1\xd1\x80\xd0\xb0\xd0\xb7\xd0\xbe\xd0\xb2\xd0\xb0\xd1\x82\xd0\xb5\xd0\xbb\xd1\x8c\xd0\xbd\xd1\x8b\xd1\x85 \xd1\x86\xd0\xb5\xd0\xbb\xd0\xb5\xd0\xb9 \xd0\xbd\xd0\xb0 \xd0\xb1\xd0\xb0\xd0\xb7\xd0\xb5 \xd0\x9e\xd0\xa1 Linux\n <br>\n <a href="/home" class="btn btn-primary">\xd0\xa1\xd0\xbe\xd0\xb7\xd0\xb4\xd0\xb0\xd1\x82\xd1\x8c \xd1\x81\xd0\xb5\xd1\x82\xd1\x8c</a>\n </p>\n </div>\n\n </div>\n </div>\n </div>\n </section>\n\n <section class="pt-4 pt-lg-0 pb-4 pb-lg-5 bg-secondary">\n\t <d'
Данная ошибка, что на удаленной стороне нет программы, которая готова работать на указанном порту. В моем
случае - это порт 81. Нет смысла продолжать выполнять программу и пытаться отправить данные. Ошибка
появляется, когда во время установки ТСР соединения клиент получает пакет с флагом RST. Из хорошего,
данная ошибка появляется быстро. Т.е. наш хост отправил SYN пакет, в ответ получил RST и сообщил об этом
нам.
А теперь попробуем установить TCP соединение на порт, который не будет отвечать пакетом с флагом RST.
Посмотрим, как себя поведет наша программа. Для этого на сервере miminet.ru настроен фаевол, который
отбрасывает все входящие TCP пакеты с портом назначения равным 8000.
Поменяем переменную PORT на 8000 и запустим нашу программу. После длительного ожидания появляется
ошибка:
ilya@net:~/network-programming$ python3 tcp-client-2-port8000.py
Socket error: [Errno 111] Connection refused
ilya@net:~/network-programming$
Вот так она выгляди под ОС Linux(Ubuntu), а ниже в MacOS.
(venv) ScrumBook: src liya2$ python tcp-client-2-port8000-1.py
Socket error: [Errno 60] Operation timed out
Ошибка означает, что не удалось установить