Форум программистов, компьютерный форум, киберфорум
C++: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.77/146: Рейтинг темы: голосов - 146, средняя оценка - 4.77
1 / 1 / 0
Регистрация: 22.12.2020
Сообщений: 140

Как получить адрес клиента winsock2.h

06.04.2021, 10:45. Показов 30488. Ответов 24

Студворк — интернет-сервис помощи студентам
Как получить ip клиента.Про inet_nto(addr.sin_addr) не говорить так как он возращает лишь внутринний адрес.А мне нужен айпи в глобальной сети
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.04.2021, 10:45
Ответы с готовыми решениями:

Как правильно обрабатывать отключение клиента от сервера. (winsock2)
Решил разобраться с простеньким чатом на сокетах. В общем вопрос вот в чем: При отключении одного из клиентов от сервера у остальных...

Как определить IP адрес клиента и его статус?
g++ сокет беркли подключение tcp собственно задача логировать все подключения но как узнать IP адрес подключенного клиента? ...

Получить удаленный ip адрес клиента
Здравствуйте. Подскажите пожалуйста, каким образом можно получить в программе удаленный ip адрес клиента подключившего к программе...

24
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
07.04.2021, 22:09
Студворк — интернет-сервис помощи студентам
функция getsockname есть и в WinAPI. без кода разговаривать не о чем.
0
1 / 1 / 0
Регистрация: 22.12.2020
Сообщений: 140
08.04.2021, 09:52  [ТС]
C++
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
 char ipa[15];
    int port[6];
    char nick[20];
    WSAData wsaData;
    WORD DLLVersion = MAKEWORD(2,1);
    if(WSAStartup(DLLVersion,&wsaData) != 0){
        printf("erorr");
        exit(1);
    }
 
    printf("Enter ip: ");
    scanf("%s",ipa);
    printf("Enter nickname: ");
    scanf("%s",nick);
 
    SOCKADDR_IN addr;
    int sizeofaddr = sizeof(addr);
    addr.sin_addr.s_addr = inet_addr(ipa);
    addr.sin_port = htons(2682);
    addr.sin_family = AF_INET;
 
    Connection = socket(AF_INET, SOCK_STREAM, NULL);
    if(connect(Connection,(SOCKADDR*)&addr,sizeof(addr)) != 0) {
        printf("error failed connect to server");
        exit(1);
    };
    printf("[CONNECTED]\n");
0
 Аватар для Annemesski
2687 / 1345 / 484
Регистрация: 08.11.2016
Сообщений: 3,734
08.04.2021, 10:14
Лучший ответ Сообщение было отмечено qwaz как решение

Решение

Цитата Сообщение от qwaz Посмотреть сообщение
char ipa[15];
возможно зря гоню, но 15 мало: если во всех четырех октетах ip значения больше 99, то нуль-терминатор уже не вмещается и inet_addr может работать не корректно.
1
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
08.04.2021, 22:15
а где код с getsockname?
0
1 / 1 / 0
Регистрация: 22.12.2020
Сообщений: 140
11.08.2021, 08:24  [ТС]
Вот решение которое нашел , вроде оно самое простое.
C++
1
SOCKADDR_IN addr;
заменил на
C++
1
SOCKADDR_IN addr , claddr;
C++
1
newConnection = accept(sListen, (SOCKADDR*)&addr, &sizeofaddr);
заменил на
C++
1
newConnection = accept(sListen, (SOCKADDR*)&claddr, &sizeofaddr);
C++
1
printf("[IP:%s]\n", inet_ntoa(addr.sin_addr));
заменил на
C++
1
2
3
4
5
6
7
printf(
            "[IP: %u.%u.%u.%u]\n",
            claddr.sin_addr.S_un.S_un_b.s_b1,
            claddr.sin_addr.S_un.S_un_b.s_b2,
            claddr.sin_addr.S_un.S_un_b.s_b3,
            claddr.sin_addr.S_un.S_un_b.s_b4
            );
;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.08.2021, 08:24

Как сохранить адрес клиента qtcpsocket?
Как можно куда то сохранить адрес клиента qtcpsocket, чтобы доступ к этому адресу был из разных слотов? Как вариант - как можно перевести...

Как получить IP адрес удалённого клиента?
Уважаемые форумчане подскажите пожалуйста как получить IP адрес клиента который подконектился к серверу. У меня есть приложения сервер и...

Spring MVC как получить внешний ip адрес клиента
Здравствуйте! Подскажите пожалуйста, как получить внешний ip адрес клиента, если клиент находится в той же локальной сети, что и сервер. ...

Spring Security. Как получить email адрес клиента который пытается войти в систему
Всем привет. Использую Spring Security. Задача такая. Клиент на странице авторизации пытается войти в систему. Клиент по какой то...

TcpClient получить ip адрес клиента
try server:=new TcpListener(IPAddress.Any,2019); server.Start(); while true do begin try writeln('ждем...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Новые блоги и статьи
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы Всем привет! Хочу поделиться свежим (и довольно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru