Конференция "Прочее" » Нет отличия INADDR_NONE от INADDR_BROADCAST ;(
 
  • Rouse_ © (07.08.08 15:28) [20]

    > код ошибки беззнаковое целое longword/dWord/Cardinal

    Результат функции int, тут я не верно назвал. Вообще оригинальная декларация выглядит как:
    #define INADDR_BROADCAST        (u_long)0xffffffff
    #define INADDR_NONE             0xffffffff

  • Сергей М. © (07.08.08 15:30) [21]

    > Anatoly Podgoretsky ©   (07.08.08 15:14) [7]


    Ну и что ?
    Я не понимаю, где костыль ..

    Сложно что ли проверить адрес по шаблонам рег.выражений для всех мыслимых нотаций ? Совсем не сложно)

    Да и какой идиот будет передавать IPv4-адрес не в Беркли-нотации ?
    А если и найдутся такие, почему не дать им отлуп вида "адрес задан неверно" ?
  • Dmitry S © (07.08.08 15:36) [22]

    > Rouse_ ©   (07.08.08 15:27) [17]
    >
    >
    > > то он будет отправлен всем-всем компам инета?
    >
    > в пределах подсети

    какой подсети именно?
  • Anatoly Podgoretsky © (07.08.08 15:38) [23]
    > Dmitry S  (07.08.2008 15:27:16)  [16]

    Имеет, это самая большая сеть, нулевая, вот к ней то и применяется данный адрес.
  • Rouse_ © (07.08.08 15:40) [24]

    > какой подсети именно?

    В твоей есесно :))))
  • Anatoly Podgoretsky © (07.08.08 15:40) [25]
    > Rouse_  (07.08.2008 15:27:17)  [17]

    В общем случае не верно. В рамках текущей маршрутизации, ничто не ограничивает посылать в любые сети. Просто в частном случае есть соглашение, что маршрутизаторы, особо (в обязательном порядке) смотрящие в Сеть не пропускают данные пакеты, но в тоже время это нормальное действие в локальных сетях.
  • Rouse_ © (07.08.08 15:41) [26]

    > В общем случае не верно.

    Скажем так: в большинстве случае верно, настроить сеть то конечно можно по разному :)
  • Anatoly Podgoretsky © (07.08.08 15:42) [27]
    > Сергей М.  (07.08.2008 15:30:21)  [21]

    А я что по твоему предложил?
    У него входящий параметр '255.255.255.255' вот его и надо проверять до вызова функции, при том не в любых нотациях, у него формат, согласно его же словам, четко зафиксирован.
  • Anatoly Podgoretsky © (07.08.08 15:54) [28]
    > Rouse_  (07.08.2008 15:41:26)  [26]

    Кульхачкеры очень мечтают сделать PING 255.255.255.255 и задосить всю Сеть :-)
  • Dmitry S © (07.08.08 16:01) [29]
    С ping 255.255.255.255 ясно. А почему тогда не получается сделать ping 192.168.0.255 (на широковещательный адрес локальной сети)...

    PS. Кстати ping 255.255.255.255 говорит, что "При проверке связи не удалось обнаружить узел 255.255.255.255. Проверьте имя узла и повторите попытку."
  • Anatoly Podgoretsky © (07.08.08 16:09) [30]
    > Dmitry S  (07.08.2008 16:01:29)  [29]

    Этот PS говорит о подобной программе, которая получила -1 в ответ на функцию.
    Кстати и хорошо, нефиг досить сеть.

    А PING это не UDP и не даже TCP
  • ketmar © (07.08.08 16:28) [31]
    >[29] Dmitry S © (2008-08-07 16:01:00)
    0.0.0.0, так же, как 255.255.255.255 — «фиктивные» адреса. их на самом деле нет. а 192.168.0.255 — вполне конкретный адрес.

    ---
    Understanding is not required. Only obedience.
  • Anatoly Podgoretsky © (07.08.08 16:33) [32]
    > ketmar  (07.08.2008 16:28:31)  [31]

    В рамках супер сети - да, но в рамках сети 192.168.0.255 такой же фиктивный, маленький бродкаст и 192.168.0.0 сеть.
  • Пробежал... (07.08.08 16:34) [33]

    > Не в windows. И даже по подсети не проходит

    ты ошибаешься.


    > IP-адрес: 52.169.21.0
    > OrgName:    E.I. du Pont de Nemours and Co., Inc.
    > OrgID:      EDPDNC
    ...

    я и сам прекрасно могу сделать whois. Ну принадлежит это компании какой-то, толку то? Вопрос не кому принадлежит, а какого хрена такой адрес образуется.


    > Какую конкретно нотацию ты имеешь ввиду ?

    да откуда я знаю? Я как разработчик модуля понятия не имею в каком там формате мне зададут имя хоста строкой. Ручками обрабатывать какие-то варианты - не айс, мало ли что. Хочется гибкости и чтобы за меня это кто-нибудь сделал, например windows... неужели так нельзя?
    Зачем мне изучать все возможные нотации, мало ли их сколько...


    > У меня gethostbyname('255.255.255.255') возвращает в S_addr
    > значение INADDR_NONE, так что что-то ты перемудрил :)

    Розыч, я сам в шоке!!! Причем, при последовательных вызовах этого кода адрес одинаковый. Но при разных запусках приложения адрес каждый раз разный и никакой последовательности, как будто это random...

    Смотри картинку! http://sharepix.ru/204333k07/ - мож я ступил где?
  • Rouse_ © (07.08.08 16:37) [34]
    0.0.0.0 зарезервирован как адрес роутера по умолчанию.
  • ketmar © (07.08.08 16:38) [35]
    >[32] Anatoly Podgoretsky © (2008-08-07 16:33:00)
    я к тому, что 0 и -1 никогда не будут «валидным адресом». а 192.168.0.255 — запросто (хотя это и криво).

    >[33] Пробежал… (2008-08-07 16:34:00)
    не занимайся неясно чем, проверяй 255.255.255.255 руками. у него всё равно имени нет. а если кто-то как-то прописал алиас — то этот кто-то большой дурак.

    ---
    Understanding is not required. Only obedience.
  • Dmitry S © (07.08.08 16:43) [36]

    > (хотя это и криво)

    А что кривого-то? Адрес как адрес.


    > В рамках супер сети - да, но в рамках сети 192.168.0.255
    > такой же фиктивный, маленький бродкаст и 192.168.0.0 сеть.
    >

    Тоже не факт.


    > Розыч, я сам в шоке!!! Причем, при последовательных вызовах
    > этого кода адрес одинаковый. Но при разных запусках приложения
    > адрес каждый раз разный и никакой последовательности, как
    > будто это random...

    Может быть винда определила, что адрес кривой, и не удосужилась заполнить данное поле, хотя бы нулями?
  • Сергей М. © (07.08.08 16:44) [37]

    > откуда я знаю? Я как разработчик модуля понятия не имею
    > в каком там формате мне зададут имя хоста строкой


    Довольно странно это - разрабатывать модуль, не имея утвержденного протокола межмодульного взаимодействия)

    Впрочем, вариантов-то не так много - либо имя хоста либо адрес)
  • Anatoly Podgoretsky © (07.08.08 16:54) [38]
    > Пробежал...  (07.08.2008 16:34:33)  [33]

    Да не мучайся, тебе нужен этот адрес или нет?
    Если не нужен считай что он невозможен INADDR_NONE и делов то.
    Другое дело если с этим адресом надо работать, тут до inet_addr нужна предобработка.
  • Anatoly Podgoretsky © (07.08.08 16:56) [39]
    > Rouse_  (07.08.2008 16:37:34)  [34]

    Ты имеешь в виду 0.0.0.0/0.0.0.0 как ANY_NETWORK/ANY_INTERFACE и т.д. эту сеть часто используют в данном качестве, как 255,255.255.255 может быть использован не как адрес броадкаста. Просто два особых адреса и потребность в ANY и ERROR
 
Конференция "Прочее" » Нет отличия INADDR_NONE от INADDR_BROADCAST ;(
Есть новые Нет новых   [134440   +4][b:0][p:0.001]