Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.04.2011, 11:36   #1
Preidman
 
Регистрация: 14.02.2011
Сообщений: 8
По умолчанию Ip адрес

Привет)

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

int ip1,ip2,ip3,ip4;


scanf(“%d.%d.%d.%d”,&ip1,&ip2,&ip3, &ip4);//192.168.3.101 //11000000 *10101000 *00000011 01100101


int ip; //32 битное число


ip = (ip1<<24) | (ip2<<16) | (ip3<<8) | ip4; //11000000101010000000001101100101

Теперь нужно сделать все наоборот...
Не получается...

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

Вот исходник:

Int main();
{
int ip,ip1,ip2,ip3,ip4;
Scanf("%d",&ip); // допустим это 1921683101

Ip1 = (ip >> 24) | 0x000000;
Ip2 = (ip >> 16) | 0x000000;
Ip3 = (ip >> 8) | 0x000000;
Ip4 = ip | 0x000000;

Printf("%d.%d.%d.%d",&ip1,&ip2,&ip3 ,&ip4);
Getch();
}

Последний раз редактировалось Preidman; 06.04.2011 в 11:37. Причина: Ошибка
Preidman вне форума Ответить с цитированием
Старый 06.04.2011, 11:50   #2
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

> // допустим это 1921683101

а на выходе, допустим, получается 114.138.142.157, так?

Тот случай, когда программа оказалась умней своего создателя )

З.Ы. Хотя нет, у вас даже 114.138.142.157 не получится. Это вобще что за ужос?

Код:
Ip1 = (ip >> 24) | 0x000000;
Ip2 = (ip >> 16) | 0x000000;
Ip3 = (ip >> 8) | 0x000000;
Ip4 = ip | 0x000000;
очевидно, имелось в виду нечто вроде:

Код:
Ip4 = ip & 0xFF;
Ip3 = (ip >> 8) & 0xFF;
Ip2 = (ip >> 16) & 0xFF;
Ip1 = (ip >> 24) & 0xFF;
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."

Последний раз редактировалось veniside; 06.04.2011 в 11:55.
veniside вне форума Ответить с цитированием
Старый 06.04.2011, 13:41   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

а inet_ntoa не катит ужо?..
p51x вне форума Ответить с цитированием
Старый 06.04.2011, 17:44   #4
Preidman
 
Регистрация: 14.02.2011
Сообщений: 8
По умолчанию

Да, именно эта часть (т.е. Самая главная) и не получается...
Preidman вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Адрес Djonik Общие вопросы Delphi 2 09.05.2010 19:15
IP адрес badgo Общие вопросы C/C++ 3 20.02.2010 17:47
Ip адрес delphin100 Win Api 4 08.01.2008 21:55
IP адрес delphin100 Общие вопросы Delphi 8 12.12.2007 13:18
как узнать ip адрес зная mac адрес Roman Работа с сетью в Delphi 9 25.06.2007 12:39