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

Не работает программа на С (Linux)

30.03.2023, 16:44. Показов 944. Ответов 0

Студворк — интернет-сервис помощи студентам
Цель: Мы вводим в командную строку ip адрес и маску подсети.Вывести номер сети , номер узла и значение маски 16-ричном,2-ичном,10-ичном виде.
Программа работает неправильно,пожалуйста помогите. Должно быть так ,а у меня по другому
./subnet_info 192.168.1.1 255.255.255.0
Prefix length: 24
Network address: 192.168.1.0
Host address: 0.0.0.1
Mask in hex: 0xffffff00
Mask in binary: 11111111.11111111.11111111.00000000
Mask in decimal: 24

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include <stdio.h>
#include <stdint.h>
#include <string.h>
#include <stdlib.h>
#include <arpa/inet.h>
 
int main(int argc, char **argv) {
if (argc != 3) {
printf("Usage: %s <ip address> <subnet mask>\n", argv[0]);
return 1;
}
 
struct in_addr ip_addr, subnet_mask;
uint32_t ip, mask, network, host;
int prefix_len = 0;
 
if (inet_pton(AF_INET, argv[1], &ip_addr) != 1) {
printf("Invalid IP address\n");
return 1;
}
 
if (inet_pton(AF_INET, argv[2], &subnet_mask) != 1) {
printf("Invalid subnet mask\n");
return 1;
}
ip = ntohl(ip_addr.s_addr);
mask = ntohl(subnet_mask.s_addr);
 
// Calculate the prefix length from the subnet mask
while (mask & 0x80000000) {
prefix_len++;
mask «= 1;
}
 
printf("Prefix length: %d\n", prefix_len);
 
// Calculate the network and host parts of the IP address
network = ip & mask;
host = ip & ~mask;
 
printf("Network address: %s\n", inet_ntoa((struct in_addr) { .s_addr = htonl(network) }));
 
printf("Host address: %s\n", inet_ntoa((struct in_addr) { .s_addr = htonl(host) }));
// Print network number and host number
printf("Network number: %d.%d.%d.%d\n",
(network » 24) & 0xff,
(network » 16) & 0xff,
(network » 8) & 0xff,
network & 0xff);
printf("Host number: %d.%d.%d.%d\n",
(host >>24) & 0xff,
(host >>16) & 0xff,
(host >>8) & 0xff,
host & 0xff);
printf("Mask in hex: 0x%x\n", ntohl(subnet_mask.s_addr));
 
printf("Mask in binary: %d.%d.%d.%d\n",
 
(subnet_mask.s_addr » 24) & 0xff,
 
(subnet_mask.s_addr » 16) & 0xff,
 
(subnet_mask.s_addr » 8) & 0xff,
 
subnet_mask.s_addr & 0xff);
 
printf("Mask in decimal: %d\n", prefix_len);
 
 
 
return 0;
 
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.03.2023, 16:44
Ответы с готовыми решениями:

Программа не работает на Linux
Помогите пожалуйста оптимизировать программу под linux. Дело в том что она отлично работает на Windows, но на Linux нет. Мне кажется не...

Программа в VS работает, в Linux не работает
Задание следующее, из текстового файла вывести самые редкие числа, самые частые, кол-во разных, вывести числа из интервала и удалить...

Программа под Ubuntu Linux не работает с файлами
Добрый день. Написал программу на C++ и с использованием Qt для интерфейса. Под Windows 7 всё нормально. Перенес проект в Ubuntu 11.10....

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.03.2023, 16:44
Помогаю со студенческими работами здесь

Почему не работает эхо клиент-сервер ? (на windows работает на linux нет :( )
Есть клиент сервер хотел написать такой клиент сервер чтоб он запускался и на windows и на linux На windows когда я запускаю...

Почему работает на Linux, но не работает на Windows или аномалии wi-fi адаптера
Из заголовка, уже возникает вопрос а такое вообще возможно? Купил на днях usb wi-fi адаптер, не обратив внимание на то что он для 5Ghz...

Почему мой парсер работает на Windows но не работает на Linux?
У меня есть парсер. На windows 11 он работает абсолютно корректно, возвращает именно то, что нужно: import requests from bs4 import...

Какой линукс выбрать в школу? (ALT Linux, RED OS Linux или Астра Linux)
Добрый день. Школа. Обрадовали письмом, что надо срочно импортозамещать винду. В письме предлагают 3 варианта: 1) «Альт Рабочая...

Программа в Linux
В программе нужно сравнить файлы находящиеся в двух каталогах. С мелкими каталогами она работает. Но если ввести каталог /etc глючит. ...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru