0 / 0 / 1
Регистрация: 17.11.2014
Сообщений: 30
1

IP от broadcast и от Dns.GetHostByName().AddressList[0]

21.04.2015, 08:40. Показов 741. Ответов 3
Метки нет (Все метки)

Получаю айпи вот так:
C#
1
2
3
string myHost = Dns.GetHostName();
IPHostEntry listHost = Dns.GetHostByName(myHost);
myIP = listHost.AddressList[0];
Кидаю броадкаст по юдп вот так:
C#
1
udpClient.Send(new byte[] {0}, 1, new IPEndPoint(IPAddress.Broadcast, 777));
Получаю броадкаст так:
C#
1
2
IPEndPoint servIP = null;
byte[] bytes = udpClient.Receive(ref servIP);
На моих компах всё работает нормально, но на других (у друга или в институте) в myIP и servIP.Address получаются разные айпи, почему так?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.04.2015, 08:40
Ответы с готовыми решениями:

Как получить из объекта List System.Net.Dns.GetHostEntry(hostname).AddressList определенный IP начинающийся с 10.?
Добрый день! Получаю List адресов с помощью System.Net.Dns.GetHostEntry(hostname).AddressList, там...

Нагрузка на DNS сервер. DNS на Windows Server. Мощности оборудования для больших DNS серверов
Приветствую коллеги! Интересно ваше узнать ваше мнение (а может быть у вас есть практика) какие...

Система AddressList
Доброго времени суток, форумчане! Есть 2 локальных IP адреса: public IPHostEntry host1 =...

gethostbyname winapi
Блин как этот winapi уже достал, microsoft такой геморой написали:( Как получить ip адрес по...

3
Master of Orion
Эксперт .NET
6091 / 4947 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
21.04.2015, 12:03 2
Cheerd, попрпобуй заменить прием на:
C#
1
2
3
4
5
6
7
8
9
        using (var udpClient = new UdpClient())
        {
            var broadcastAddress = new IPEndPoint(IPAddress.Any, 1234);
            udpClient.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
            udpClient.ExclusiveAddressUse = false;
            udpClient.Client.Bind(broadcastAddress);
            udpClient.BeginReceive(ar => {/*обработчик*/}, null);
            // ...
        }
Добавлено через 2 минуты
ну или что-то в таком духе
C#
1
2
3
4
5
6
7
8
9
10
        using (var udpClient = new UdpClient())
        {
            var broadcastAddress = new IPEndPoint(IPAddress.Any, 1234);
            udpClient.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
            udpClient.ExclusiveAddressUse = false;
            udpClient.Client.Bind(broadcastAddress);
            var receiveAsync = udpClient.ReceiveAsync().Result;
            Console.WriteLine(receiveAsync.Buffer.Length);
            Console.WriteLine(receiveAsync.RemoteEndPoint);
        }
0
0 / 0 / 1
Регистрация: 17.11.2014
Сообщений: 30
21.04.2015, 13:16  [ТС] 3
Я нашёл причину. Это из-за того, что компы подключены к нескольким сетям.
0
0 / 0 / 1
Регистрация: 17.11.2014
Сообщений: 30
22.04.2015, 19:35  [ТС] 4
Всё равно, не помогает.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.04.2015, 19:35
Помогаю со студенческими работами здесь

gethostbyname и получение IP (Linux)
Подскажите пожалуйста хочу получить ай-пи по домену. int main() { struct hostent *hostaddr...

Задание адреса gethostbyname
Здравствуйте дорогие форумчане! Извиняюсь если повторяю чью то тему, просто не заметил наверное....

gethostbyname() возвращает 11004
struct sockaddr_in addr; struct hostent* hp; int retval; retval = WSAStartup(MAKEWORD(1, 1),...

Проблема с функцией gethostbyname
Здравствуйте. Написал простенькую программу: #include <winsock2.h> #include <stdio.h> int main()...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru