|
2 / 2 / 0
Регистрация: 24.07.2014
Сообщений: 44
|
||||||
Ошибка IPAddress.ToString()!?13.01.2019, 21:55. Показов 2784. Ответов 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,236
|
|||||||
| 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 | |
|
Sockets , IPAddress
Как отсеять ip-v4 из IPAddress Как проинитить Dictionary<string,IPAddress>
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Нейтральные знания ..., ... чистая наука. Пока что-то проходит модерацию на Хабре, стоит развить мысль ...
Hrethgir 20.07.2026
К таким радикальным взглядам я конечно в той публикации не приходил, но чтобы скоротать вечер, решил углубиться немного.
1. Почему показания термометра заряжены целью?
Цель заложена в самом. . .
|
Установка нескольких штампов электронной подписи в строго определенных местах файла docx
ВладимирСамохин 19.07.2026
(В!) Работа с Электронной подписью - это неотъемлемая часть современного документооборота. Но что делать, если нужно поставить несколько штампов электронной подписи в строго определенных местах. . .
|
сукцессия 35. Научная статья о проделанной работе
anaschu 19.07.2026
Написал в формате латекс и пдф
|
Вангую, что это не пройдёт модерацию, и на неделе я запущу свой сервер.
Hrethgir 19.07.2026
Эта публикация сейчас в песочнице и ждёт приглашения.
https:/ / habr. com/ ru/ sandbox/ 295048/
По ссылке 403. Не очень информативно такую ссылку постить.
Запись от Usaga размещена Сегодня в 06:46 . . .
|
|
сукцессия 33. открытые вопросы от клауде
anaschu 19.07.2026
"Что накопилось за эту часть А — тринадцать правок, из которых шесть пришли из ваших вопросов и каждая оказалась реальной ошибкой, а не калибровкой: односторонний симбиоз, отсутствующий листопад,. . .
|
32 сукцессия
anaschu 19.07.2026
сукцессия 28‑мерное ядро стабилизировано
Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не «подкручивает» сходимость —. . .
|
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано
Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
|
сукцессия 30. Массив проверяющих друг друга моделей
anaschu 18.07.2026
Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2. 0)
Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона
Уважаемые коллеги!
В продолжение. . .
|