|
2 / 2 / 0
Регистрация: 24.07.2014
Сообщений: 44
|
||||||
Ошибка IPAddress.ToString()!?13.01.2019, 21:55. Показов 2694. Ответов 43
Метки нет (Все метки)
Как это понимать? Должно выдать 0.0.0.1 или я что-то не понимаю?
0
|
||||||
| 13.01.2019, 21:55 | |
|
Ответы с готовыми решениями:
43
При вычислении выражения ++i.ToString() сначала вычисляется ToString(), а потом ++ Разница между string.Concat(x,y) и x.ToString()+y.ToString()
|
|
5 / 5 / 0
Регистрация: 26.03.2015
Сообщений: 37
|
|||||||
| 14.01.2019, 00:14 | |||||||
0
|
|||||||
|
2 / 2 / 0
Регистрация: 24.07.2014
Сообщений: 44
|
|
| 14.01.2019, 00:17 [ТС] | |
|
IamRain я привёл код, который показывает, что 255.255.255.255 при представлении в десятичное число на 2 млрд больше int32.MaxValue. У меня ошибка в формуле преобразования ip в десятичное число?
Добавлено через 2 минуты WODICHKA , в число переведите 255.255.255.255, а не в байты. И увидите, что в десятичном представлении это значение больше int32.MaxValue. Я даже код дал, введите его в Студии и запустите программу. Цифры говорят сами за себя. Это в формате "*.*.*.*" хватает 4 байт, а в десятичном 4 байт не хватит.
0
|
|
|
5 / 5 / 0
Регистрация: 26.03.2015
Сообщений: 37
|
||
| 14.01.2019, 00:17 | ||
|
2^32 - 1 = 4294967295 == uint.max
0
|
||
|
2 / 2 / 0
Регистрация: 24.07.2014
Сообщений: 44
|
|
| 14.01.2019, 00:20 [ТС] | |
|
Someone007 , верно!!!) Есть же uint, в него ipv4 прекрасно влезет. Я даже больше скажу. uint.MaxValue соответствует как раз 255.255.255.255. Но я храню значения в MS SQL, поэтому пришлось использовать long.
Добавлено через 37 секунд WODICHKA вы видели ip с отрицательными числами?) Добавлено через 26 секунд Точно, я могу привести long к uint и тогда получу 4 байта. Спасибо всем огромное!!!
0
|
|
|
5 / 5 / 0
Регистрация: 26.03.2015
Сообщений: 37
|
||
| 14.01.2019, 00:21 | ||
|
4 байта удобно хранить в int не играет роли какое там число. диапазон signed int: [-2 147 483 648, +2 147 483 647] диапазон unsigned int: [0, +4 294 967 295]
0
|
||
|
2 / 2 / 0
Регистрация: 24.07.2014
Сообщений: 44
|
|
| 14.01.2019, 00:24 [ТС] | |
|
WODICHKA int.MaxValue - это максимальное положительное число, а не сколько всего чисел. Поэтому там не 4294967295, а 2147483647
Добавлено через 1 минуту WODICHKA на самом деле IP и десятичные числа это одно и тоже. Просто разное представление.
0
|
|
|
5 / 5 / 0
Регистрация: 26.03.2015
Сообщений: 37
|
||
| 14.01.2019, 00:26 | ||
|
0
|
||
|
2 / 2 / 0
Регистрация: 24.07.2014
Сообщений: 44
|
|||||||
| 14.01.2019, 00:28 [ТС] | |||||||
|
И потому, что это одно и тоже, я могу оперировать IP адресами как с обычными числами) Что значительно удобнее в коде. Например, вот как я могу проходиться по диапазону IP:
Добавлено через 1 минуту
0
|
|||||||
|
5 / 5 / 0
Регистрация: 26.03.2015
Сообщений: 37
|
||
| 14.01.2019, 00:31 | ||
|
0
|
||
|
2 / 2 / 0
Регистрация: 24.07.2014
Сообщений: 44
|
|
| 14.01.2019, 00:35 [ТС] | |
|
Поэтому теперь вместо "*.*.*.*" я работаю с обычными десятичными числами. Что значительно понятнее в коде. И сам код, как показано выше, проще.
Добавлено через 2 минуты WODICHKA вам нужно составить массив IP адресов. Как вы будете это делать? Я делаю просто: for (long i = iPRange.BeginIPDecimel; i <= iPRange.LastIPDecimel; i++) Количество IP в диапазоне тоже вычисляется просто: iPRange.LastIPDecimel - iPRange.BeginIPDecimel. Если вы будете работать с формой записи IP как "*.*.*.*" у вас так просто не получится. Добавлено через 48 секунд Кроме того, ваш код будет менее эффективен в плане производительности.
0
|
|
|
5 / 5 / 0
Регистрация: 26.03.2015
Сообщений: 37
|
|||||||
| 14.01.2019, 00:41 | |||||||
1
|
|||||||
|
2 / 2 / 0
Регистрация: 24.07.2014
Сообщений: 44
|
|
| 14.01.2019, 00:41 [ТС] | |
|
WODICHKA, я имею в виду ваш код, если бы вы работали с IP адресами.
0
|
|
|
5 / 5 / 0
Регистрация: 26.03.2015
Сообщений: 37
|
|
| 14.01.2019, 00:42 | |
|
0
|
|
|
2 / 2 / 0
Регистрация: 24.07.2014
Сообщений: 44
|
|||
| 14.01.2019, 00:47 [ТС] | |||
|
Добавлено через 2 минуты
0
|
|||
|
5 / 5 / 0
Регистрация: 26.03.2015
Сообщений: 37
|
|
| 14.01.2019, 00:48 | |
|
0
|
|
|
2 / 2 / 0
Регистрация: 24.07.2014
Сообщений: 44
|
||
| 14.01.2019, 00:50 [ТС] | ||
|
WODICHKA, Если интересно, что имею в виду, сделайте в цикле обработку каждого IP адреса из диапазона IP. Например, вывод на экран.
Я не понимаю как можно написать простой и понятный код, который проходится по всем IP из диапазон IP. Добавлено через 43 секунды
0
|
||
|
5 / 5 / 0
Регистрация: 26.03.2015
Сообщений: 37
|
||||||||||||
| 14.01.2019, 00:55 | ||||||||||||
|
Если конвертировать uint.MaxValue к массиву байт
Да действительно если представить IP в виде числа без знака то можно удобно бегать по диапазонам адресов. Другое дело, что не представляю себе задачи при которой мне бы пришлось бегать по диапазону адресов (как это делаете вы подряд)
0
|
||||||||||||
|
2 / 2 / 0
Регистрация: 24.07.2014
Сообщений: 44
|
|
| 14.01.2019, 01:16 [ТС] | |
|
Спасибо всем огромное!
0
|
|
|
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,234
|
|||||||
| 14.01.2019, 01:35 | |||||||
|
А Адрес 255.255.255.255 - это 2^8 - 1. - То есть в два раза больше. Именно поэтому для представления IPAddress-ов используется знаковый long (Int64) тип.
Добавлено через 7 минут Ну и резюмируя, если при одном и том же представлении числа, скажем 0xABCD мы знаем, что объект, его использующий, интерпретирует числа в BigEndian формате, то число D (наименее значащий) в этой Hex-записи будет находится по наибольшему (старшему) адресу, в LittleEndian - по наименьшему.Добавлено через 6 минут Насколько я понял, сама запись числа - это и есть BigEndian формат, то есть старшие - слева, младшие - справа, поэтому BigEndian формат - прямой порядок байт, как сказал, kolorotur.
0
|
|||||||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|||||||||||||
| 14.01.2019, 01:55 | |||||||||||||
from и to:
1
|
|||||||||||||
| 14.01.2019, 01:55 | |
|
Помогаю со студенческими работами здесь
40
Sockets , IPAddress
Как отсеять ip-v4 из IPAddress Как проинитить Dictionary<string,IPAddress>
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы
Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
|
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция
Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
|
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
|
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
|
|
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
|
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика
Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
|
Модель здравосохранения 17. Планы на выгорание
anaschu 23.05.2026
Вот конкретная схема реализации:
В классе Работник добавить:
накопленнаяУсталость — растёт каждый час работы, снижается в перерывы и болезни
коэффициентПрезентеизма — снижает продуктивность. . .
|
Изменение цветов в палитре gif файла aka фавикона
russiannick 23.05.2026
Изменение цветов в палитре gif файла, юзаемого как фавиконка в составе html-файла, помещенная в base64, средствами нативного Java Script, навеянное сном в майский день.
Для работы необходим браузер,. . .
|