Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/117: Рейтинг темы: голосов - 117, средняя оценка - 4.56
CreatiFFMAster

Как получить IP адрес удалённого клиента?

26.12.2009, 11:40. Показов 21693. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Уважаемые форумчане подскажите пожалуйста как получить IP адрес клиента который подконектился к серверу.
У меня есть приложения сервер и клиент.Что то вроде чата.
Сервак прослушивает входящие соединения на сокете с помощью TcpLisner.
Мне нужно получить IP адрес той машины с которой пришёл коннект.
Как получить айпишник локальной машины я знаю.
Вот кусочек кода.

C#
1
2
3
4
5
6
7
string host = Dns.GetHostName();
IPHostEntry ipE = Dns.GetHostEntry(host);
IPAddress[] IpA = ipE.AddressList;
for (int i = 0; i < IpA.Length; i++)
{
txtIP.Text = IpA.ToString();
}
А как получить с удалённой машины?
Подскажите пожалуйста, кто знает.
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.12.2009, 11:40
Ответы с готовыми решениями:

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

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

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

14
4 / 4 / 0
Регистрация: 08.07.2010
Сообщений: 44
08.07.2010, 22:40
Здравствуйте!
Хочу продолжить тему моего соратника. Та же проблема...
В общем я прослушиваю некий порт на компе с помощью TcpListener, и мне нужно определить IP либо имя компа с которого пришел этот зарос...
Кто сталкивался или знает как это сделать, помогите пожалуйста. Заранее благодарен!
0
7 / 7 / 0
Регистрация: 06.02.2010
Сообщений: 31
09.07.2010, 06:05
что то наподобии:

TcpClient Client;

....

IpClient = ((IPEndPoint)Client.Client.LocalEndPoint ).Address;
3
4 / 4 / 0
Регистрация: 08.07.2010
Сообщений: 44
10.07.2010, 16:43
Спасибо Kraft!
Всроде работает, все оказалось довольно просто
0
6 / 6 / 1
Регистрация: 29.07.2014
Сообщений: 9
05.02.2015, 11:02
Ребят немного поправлю вот так будет получение ip удаленного клиента в C#
C#
1
2
string MYIpClient ;
MYIpClient = Convert.ToString(((System.Net.IPEndPoint)client.Client.RemoteEndPoint).Address);




А этой командой Вы получите айпишник сервера т.е. локальную точку.
IpClient = ((IPEndPoint)Client.Client.LocalEndPoint ).Address;

Добавлено через 17 минут
Вот так более полное представление:


C#
1
2
3
string MYIpClient ;
TcpClient client = client_obj as TcpClient; 
MYIpClient = Convert.ToString(((System.Net.IPEndPoint)client.Client.RemoteEndPoint).Address);
3
3 / 3 / 1
Регистрация: 30.10.2019
Сообщений: 107
15.05.2020, 10:14
Вопрос:
Если я подключаюсь к серверу с прослойкой из маршрутизатора, этот код же по идее вернёт именно адрес маршрутизатора?
И если да, то как я могу обратиться к конечному устройству?
(знаний в компьютерных сетях почти ноль, так уж вышло)
0
800 / 583 / 207
Регистрация: 21.02.2019
Сообщений: 2,095
15.05.2020, 10:19
Guildenstern_,
.. для того, чтобы подключиться к серверу, который может находиться хоть за двумя (или тремя) маршрутизаторами, вам не нужно знать его внутренний IP ... вы подключаетесь к внешнему IP (и открытому порту) внешнего маршрутизатора, на котором должна быть настроена проброска (forwarding) на внутренний IP (и внутренний порт), и как это проброшено - вам это знать вовсе не обязательно (если вы не админ сети) ...
0
3 / 3 / 1
Регистрация: 30.10.2019
Сообщений: 107
15.05.2020, 10:22
Ну, если быть точнее, то так:
Есть сервер, к нему я могу подключиться с ноутбука, получающему доступ через роутер. При этом я могу сделать то же самое с стационарного компьютера, подключённого к тому же роутеру. Как мне получить адрес конкретного устройства, например ноутбука?
0
800 / 583 / 207
Регистрация: 21.02.2019
Сообщений: 2,095
15.05.2020, 10:26
Guildenstern_,
.. посмотреть на роутере в таблице DHCP .. .. вообще, вариантов ответа может быть много ...
0
3 / 3 / 1
Регистрация: 30.10.2019
Сообщений: 107
15.05.2020, 10:29
А применительно к c# и получению этих данных с сервера?
В принципе, я могу и с клиента это определять, если это поможет.
Я думал, что можно использовать связку адресов маршрутизатора и устройства в его сети, но что тогда делать с устройствами в сетях с большей иерархией?
0
800 / 583 / 207
Регистрация: 21.02.2019
Сообщений: 2,095
15.05.2020, 10:36
.. если в сети доступ осуществляется через NAT (network address translation), то сервер получает при запросе адрес внешнего маршрутизатора, как инициатора запроса, и туда же отправляет ответ .. Дело маршрутизатора держать таблицу при открытом соединении ... Это у почтовых серверов можно проследить цепочку от конкретного компьютера ... Вообще говоря, это вам для чего? ... Сетевые протоколы обсуждаются в других ветках/темах форума, и там больше людей, которые вам смогут что-то подсказать ..
0
3 / 3 / 1
Регистрация: 30.10.2019
Сообщений: 107
15.05.2020, 10:55
я пытаюсь писать мессенджер, и хотел для реализации отправки уведомлений хранить адреса подключённых устройств, чтобы оно рассылалось даже когда устройство не в сети. То есть при подключении устройства к серверу получается его адрес, и записывается в базу, при повторном подключении этого же устройства с другого адреса он обновляется. Но тут слишком много несостыковок
0
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
16.05.2020, 12:55
Guildenstern_, пусть клиент при подключении посылает дату последнего сеанса подключения. все сообщения после этой даты надо послать
0
3 / 3 / 1
Регистрация: 30.10.2019
Сообщений: 107
16.05.2020, 14:27
Проблема не в том, что посылать, а куда посылать. А дата и так хранится на сервере
0
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
16.05.2020, 14:39
Guildenstern_, посылать известно куда - в канал открытый клиентом при подключении.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.05.2020, 14:39
Помогаю со студенческими работами здесь

Получить ip адрес клиента (асинхронный клиент - сервер)
Не могу получить ip адрес клиента (асинхронный клиент - сервер) при получении сообщения на стороне клиента. Помогите пожалуйста если кто...

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

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

MAC адрес и другие сведения как считать с клиента (PHP)
А как считать сведения с клиента MAC адрес например, имя пользователя функциями PHP IP и имя машины я читаю вот так: ...

Как в форме изменять адрес клиента, но так, чтобы он не изменялся в главной таблице
Есть таблица &quot;Данные клиентов&quot;и есть вторая таблица &quot;Оказанные услуги&quot;. Создал форму, можно ли изменять адрес в форме, но так чтобы он...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru