Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 1
Регистрация: 02.10.2016
Сообщений: 13

Проверка IP адреса на валидность, если в одном из байтов есть начальный нуль

02.10.2016, 12:31. Показов 2727. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Считываю параметры из текстового файла, в т.ч. и IP-адрес.
Столкнулся с тем, что IPAddress.Parse(string RemoteIpServer) странным образом преобразовывает String в IPAddress, если в одном из байтов начальным указан нуль (192.168.1.045). Если в одном из байтов IP-адреса нет начальных нулей, то все в порядке (192.168.1.45). Например:


C#
1
2
3
4
string RemoteIpServer="192.168.1.45";
 
IPAddress address = IPAddress.Parse(RemoteIpServer);
Console.WriteLine(address);
Вывод:
//192.168.1.45

C#
1
2
3
4
string RemoteIpServer="192.168.1.045"; //является вполне допустимо использовать такой IP.
 
IPAddress address = IPAddress.Parse(RemoteIpServer);
Console.WriteLine(address);
Вывод:
//192.168.1.37

Есть ли метод, который преобразует string в IPAddress правильно в последнем случае?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.10.2016, 12:31
Ответы с готовыми решениями:

Проверка IP адреса на валидность, если в одном из байтов есть начальный нуль
Добрый день. Считываю параметры из текстового файла, в т.ч. и IP-адрес. Столкнулся с тем, что IPAddress.Parse(string RemoteIpServer)...

Сканирование байтов в памяти, и получение начального адреса байтов
Привет форумчане! У меня вопрос, как просканировать память у процесса так, чтобы получить адрес начала байтов в памяти? Я попробовал...

Определить, есть ли в списке работающих Ивановы, и, если есть, то вывести их адрес (адреса)
Вот сама задача: Дан массив данных о работающих на фабрике: фамилия, имя, отчество, адрес (улица, дом, квартира) и дата поступления на...

2
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
02.10.2016, 13:41
Цитата Сообщение от alex89nur Посмотреть сообщение
странным образом преобразовывает String в IPAddress
Да, это очень странно, поскольку в .NET я не видел, где бы применялась восьмеричная система, а 045 в восьмеричной и есть 37. Надо посмотреть на их сайте, что пишут об этом методе.

Добавлено через 20 минут
Самое простое, "в лоб" решение.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
 
namespace ConsoleApplication27 {
    class Program {
        static void Main(string[] args) {
            string addressString = "192.168.1.045".Replace("0", ""); 
            IPAddress ip = IPAddress.Parse(addressString);
            Console.WriteLine(ip);
            Console.ReadLine();
        }
    }
}
0
0 / 0 / 1
Регистрация: 02.10.2016
Сообщений: 13
02.10.2016, 14:26  [ТС]
Спасибо, решил таким образом:
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
 static void Main(string[] args) {
String IP_String="192.168.1.040";
IPAddress ip;
if (!IPAddress.TryParse(IP_String, out ip)) return;
ip=string_to_ip_convert(IP_String);
 
}
 
static IPAddress string_to_ip_convert(string IP_string)
        {
            String[] bytes = IP_string.Split(new char[] { '.' }, StringSplitOptions.RemoveEmptyEntries);
            IP_string = "";
            int i = 0;
            foreach (string one_byte in bytes)
            {
                //bytes[i] = one_byte.TrimStart('0');
                string temp = one_byte.TrimStart('0');
                IP_string = IP_string + temp;
                if (i < 3) IP_string = IP_string + ".";
                i++;
            }
            Console.WriteLine("Обработанный IP:" + IP_string);
            IPAddress ip = IPAddress.Parse(IP_string);
            return ip;
        }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.10.2016, 14:26
Помогаю со студенческими работами здесь

Определить, есть ли в списке Петровы (Петров, Петрова), если есть, то вывести их адрес (адреса) и записать их в стек.
6. Дан список данных о работниках фирмы: фамилия, имя, отчество, адрес (улица, дом, квартира) и дата поступления на работу (месяц, год)....

Выведите YES, если среди введенных чисел есть хотя бы один нуль, или NO в противном случае
Проверьте, есть ли среди данных N чисел нули. Входные данные Вводится число N, а затем N чисел. Выходные данные Выведите YES,...

Проверить валидность IP-адреса
Как написать программу , которая определяет, является ли заданная строка правильным IP-адресом?(Не в 1-2 строчки) Если IP - Адрес...

Если увеличить объём кластера на флешке с 4048 байтов до 8192 байтов то она будет работать быстрей?
Как думаете если увеличить объём кластера на флешке с 4048 байтов до 8192 байтов то на будет работать быстрей?

Если в массиве есть запись хотя бы в одном из трех свойств, то
Приветствую! Ребята, за ранее извиняюсь, что вопрос не очень корректно сформулирован, у меня просто уже взрыв мозга... Собственно...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru