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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.12.2016, 20:40   #1
BlackGold
 
Аватар для BlackGold
 
Регистрация: 12.12.2016
Сообщений: 8
По умолчанию С приём пакета!

Долго думал и не мог сформулировать проблему!

Задача в том ! Формат ip (c) узнать относиться ли первая часть IP(NET) к нам или нет! И вторая часть IP (host), что бы я например ввел число(в hex) и условие говорила наша ли эта сеть если да то бла бла бла если нет то бла бла бла!
Потом введите host вторая часть IP и показывает значение ,
используя уровень IP (C 24+8) 32 bit

Блин ужас не знаю получилось ли объяснить(

Вот что вышло у меня и дальше не могу понять что делать
Спасибо)

Код:
int main(){
    unsigned long format,mask,m;
    unsigned int a,mask2;
    m=0xFFFFFFFF;
    mask=0xFFFFFFFF;
    printf("Enter Hex Number:\n ");
    scanf("%X", &format);
    printf("%X\n",mask & format);
    if (mask&format==m){
        printf(" Our IP");
    } else{
        printf("Not Our IP\n");
    }
    mask2=0x000000FF;
    printf("Enter the host:\n ");
    scanf("%X", &a);
    printf("\n%X",mask2 & a);
}

Последний раз редактировалось BlackGold; 12.12.2016 в 22:07.
BlackGold вне форума Ответить с цитированием
Старый 13.12.2016, 00:10   #2
olej.tsil
Заблокирован
 
Регистрация: 29.11.2016
Сообщений: 215
По умолчанию

Цитата:
Сообщение от BlackGold Посмотреть сообщение
Блин ужас не знаю получилось ли объяснить(
Не получилось.
Действительно "блин ужас".
olej.tsil вне форума Ответить с цитированием
Старый 14.12.2016, 01:53   #3
BlackGold
 
Аватар для BlackGold
 
Регистрация: 12.12.2016
Сообщений: 8
Радость Помогите Дополнить!

Нужно что бы если вводил в scanf меньше 6 знаков (0xFFFFFF) то программа заканчивала работу либо писала введите правильно
Код:
int main() {
    unsigned long format, mask, m;
    unsigned int a, mask2;
    m = 0xFFFFFF;
    mask = 0xFFFFFF;
    printf("Enter the address with Hex format (Example: FFFFFF):\n ");
    scanf("%X", &format);
    //printf("%X\n", mask & format);
    if (mask & format == m) {
        printf(" Our address Net %d.%d.%d\n", format & 0xFF, (format & 0x00FF), (format & 0x0000FF));
    }

    else
    {
        printf(" Not Our address Net %d.%d.%d\n", format & 0xFF, (format & 0x00FF), (format & 0x0000FF));
    }
    mask2 = 0x000000FF;
    printf("Enter host address with Hex format (Example: FF):\n ");
    scanf("%X", &a);
    printf("\n.%d\n", a & 0x000000FF);
    printf("Complete address information: %d.%d.%d.%d\n", format & 0xFF, (format & 0x00FF), (format & 0x0000FF),(a & 0x000000FF));
}
BlackGold вне форума Ответить с цитированием
Старый 14.12.2016, 07:18   #4
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Код:
format & 0xFF, (format & 0x00FF), (format & 0x0000FF)
Это все одно и то же.
waleri вне форума Ответить с цитированием
Старый 16.12.2016, 19:21   #5
BlackGold
 
Аватар для BlackGold
 
Регистрация: 12.12.2016
Сообщений: 8
По умолчанию

ВОТ что нужно было) Не знал как объяснить)
Код:
int main() {
    unsigned long format, mask, m;
    unsigned int a, mask2,b;
    b=0x000000FF;
    m = 0xFFFFFF;
    mask = 0xFFFFFF;
    printf("Enter the address with Hex format (Example: FFFFFF):\n ");
    scanf("%X", &format);
    //printf("%X\n", mask & format);
    if (mask & format == m ) {

        printf(" Our Net address  %d.%d.%d\n", format & 0xFF, (format & 0x00FF), (format & 0x0000FF));

    }
    else if((format<=1048575) || (format>=16777215)){
        printf("Incorrect format address\n");
        _Exit (EXIT_SUCCESS);
    }
    else
    {
        printf(" Not Our Net address   %d.%d.%d\n", format & 0xFF, (format & 0x00FF), (format & 0x0000FF));
    }
    mask2 = 0x000000FF;
    printf("Enter host address with Hex format (Example: FF):\n ");
    scanf("%X", &a);

    if (mask2 & a == b ) {

        printf(" Our host address  .%d\n", a & 0x000000FF);

    }
    else if((a<=15) || (a>255)){
        printf("Incorrect format address\n");
        _Exit (EXIT_SUCCESS);
    }
    else
    {
        printf(" Not Our host address  %d\n", a & 0x000000FF);
    }

    printf("\n.%d\n", a & 0x000000FF);
    printf("Complete address information: %d.%d.%d.%d\n", format & 0xFF, (format & 0x00FF), (format & 0x0000FF),(a & 0x000000FF));
}
BlackGold вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Приём данных с COM порта Евгений55 Microsoft Office Excel 3 05.01.2013 16:46
Приём и обработка смс Lida Petrova Фриланс 11 27.12.2012 14:46
приём сообщения по UDP Astron Работа с сетью в Delphi 5 22.04.2010 17:04
Приём файлов с почты D7 BARNEY Работа с сетью в Delphi 1 16.08.2009 14:36
Приём изображений Terran Работа с сетью в Delphi 2 15.12.2007 15:03