1. PHP / Говнокод #6006

    +169

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    function ValidateIPAdress($value){
        if (preg_match('/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/', $value)){
            return true;
        }
        return false;
    }
    if( ValidateIPAdress("192.168.0.1") )
        echo("This is an IPAdress");
    else
        echo("This is not an IPAdress");

    Функция проверки IP адреса.

    Запостил: vdmodule, 16 Марта 2011

    Комментарии (48) RSS

    • как он легко решил отделаться ...
      Ответить
    • Если бы PHPшники разбирались в компьютерах, они бы знали что такое байт...
      Ответить
    • вот почему любую задачу решают с помощью регулярок, а?
      Ответить
      • это же модно!
        Ответить
      • так евгений попов (тм) завещал
        Ответить
        • этот ваш тм - отличный пример, как сделать себе имя, ничего не делая
          Ответить
      • это PERL-way же
        Ответить
        • в перле хотя бы они не через задницу (надеюсь) реализованы. Хотя тоже не универсальное средство. Перл вообще лучшего всего работает со строками и массивами строк
          Ответить
        • нет
          в перле не принято велосипиздничать: http://search.cpan.org/dist/Net-IP/IP.pm
          Ответить
          • на пхп тоже
            if( ip2long("192.168.0.1") )
                echo("This is an IPAdress");
            else
                echo("This is not an IPAdress");
            Ответить
            • круто!
              Ставлю плюс Вашей мессаге: "Если бы PHPшники разбирались в PHP..."

              А вот если бы в PHP функции разбивались бы хоть на какие-то модули, хоть по префиксу, то найти их было бы проще))
              Ответить
      • А вы хотели здесь полноценный парсер?
        Ответить
    • ВНЕЗАПНО 999.999.999.999 тоже валидный IP
      Ответить
      • ping 999.999.999.999
        Ответить
        • осталось только ввести доменную зону 999.
          и вобще все от 256 до 100500.
          Ответить
          • какое отношение IP имеет к доменной зоне?
            Ответить
            • то что выходит за рамки IP определяется как домен )
              Ответить
              • аа))) всмысле если нечто не является IP, то ему делается gethostbyname? ресолвится типа?
                Ответить
          • имя зоны не может начинаться с цифры
            Ответить
      • В игрушке Uplink в свое время так и было, кстати.
        Ответить
        • И в фильме каком-то про хакеров, "сеть" чтоль.

          [слоупоук.жпг]
          Надо хоть иногда дочитывать посты до конца.
          Ответить
      • в военное время размер байта может достигать...
        Ответить
      • 666.666.666.666
        Ответить
      • 000.000.000.000 - охуенно ваще...
        пойду пингану...
        хрен...
        "address is not valid"
        --
        а жаль...
        Ответить
        • byss@byssNetbook ~ $ ping 000.000.000.000
          PING 000.000.000.000 (127.0.0.1) 56(84) bytes of data.
          64 bytes from 127.0.0.1: icmp_req=1 ttl=64 time=0.054 ms
          64 bytes from 127.0.0.1: icmp_req=2 ttl=64 time=0.042 ms
          64 bytes from 127.0.0.1: icmp_req=3 ttl=64 time=0.047 ms
          ^C
          --- 000.000.000.000 ping statistics ---
          3 packets transmitted, 3 received, 0% packet loss, time 1999ms
          rtt min/avg/max/mdev = 0.042/0.047/0.054/0.009 ms
          Что я делаю не так?)
          Ответить
          • C:\Users\vdmodule>ping 000.000.000.000
            
            Обмен пакетами с 0.0.0.0 по с 32 байтами данных:
            PING: сбой передачи. General failure.
            PING: сбой передачи. General failure.
            PING: сбой передачи. General failure.
            PING: сбой передачи. General failure.
            
            Статистика Ping для 0.0.0.0:
                Пакетов: отправлено = 4, получено = 0, потеряно = 4
                (100% потерь)
            Ответить
            • ВЕНДОБЛЯДЬ соснула, пыщь пыщь, олололо!!1111
              на самом деле в данной ситуации соснул линукс, т.к. 0.0.0.0 НЕ ДОЛЖЕН определяться как 127.0.0.1, это совершенно разные адреса.
              Ответить
            • ap.my>ping 000.000.000.000
              IP broadcast ping disallowed from EXEC user level
              ap.my>ena
              Password:
              ap.my#ping 000.000.000.000
              
              Type escape sequence to abort.
              Sending 5, 100-byte ICMP Echos to 0.0.0.0, timeout is 2 seconds:
              
              Reply to request 0 from gw2 (192.168.9.2), 4 ms
              Reply to request 1 from gw2 (192.168.9.2), 4 ms
              Reply to request 2 from gw2 (192.168.9.2), 1 ms
              Reply to request 3 from gw2 (192.168.9.2), 1 ms
              Reply to request 4 from gw2 (192.168.9.2), 1 ms
              ap.my#
              Ответить
              • кста мну был немало удивлен что на цисках нет 127.0.0.0/8) ибо лупбек бывает только на хостах, но не на роутерах или бриджах.


                а чому 0.0.0.0 это бродакаст?
                255.255.255.255 же.
                Ответить
                • http://tools.ietf.org/html/rfc1700#page-4 же, "this network"

                  внезапно
                  Loopback0 is up, line protocol is up
                    Hardware is Loopback
                    MTU 1514 bytes, BW 8000000 Kbit, DLY 5000 usec,
                       reliability 255/255, txload 1/255, rxload 1/255
                    Encapsulation LOOPBACK, loopback not set
                    Last input 00:00:01, output never, output hang never
                    Last clearing of "show interface" counters never
                    Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0
                    Queueing strategy: fifo

                  на нём даже роутить можно, при желании :-D
                  Ответить
                  • я сказал лупбек?
                    я имел ввиду 127.0.0.0/8 все таке)
                    попробуйте
                    conf
                    int loop0
                    ip addr 127.0.0.1

                    кажется так

                    и узнаете
                    Ответить
                    • тот же assigned numbers не даст такое поставить
                      Ответить
                      • (g)   {127, <any>}
                        
                                 Internal host loopback address.  Should never appear outside
                                 a host.


                        тоесть по 127.0.0.0/255.0.0.0 должен всегда отвечать локалхост
                        а сиська так не делает
                        попробуйте ping 127.0.0.1

                        и в доке у них сказано что речь в assigned numbers идет о ХОСТЕ, а они дескать не хост а РОУТЕР.

                        а ИНТЕРФЕЙС loopback тут непричем, это я попал пальцем в жопу видимо
                        Ответить
                        • > попробуйте ping 127.0.0.1
                          а что должно произойти?

                          в IOS внутренние лупбеки по другому устроены
                          Ответить
                          • >>а что должно произойти?
                            случится "....."
                            потому что пакеты никуда не пойдут
                            потому что на IOS 127.0.0.1 не пингует сам себя
                            в отличие от других ос

                            >>в IOS внутренние лупбеки по другому устроены
                            я зна, там на них какие-то сложные конструкции строили чуть ли не для IBGP
                            Ответить
                            • > какие-то сложные конструкции
                              то на виртуальном интерфейсе, а внутренние для диагностики физического уровня используются вроде (ничего под рукой нет попробовать)
                              Ответить
                              • может быть)
                                честно говоря я кроме 857W и 805 сам плотно ничего не крутил.
                                в старших роутерах и уже тем более о свичах-каталистах только одним глазом:))
                                Ответить
                                • вот они
                                  http://www.cisco.com/en/US/tech/tk713/tk628/technologies_tech_note09186a00800a754b.s html
                                  Ответить
    • Вспомнился старинный фильм "Сеть".
      http://farm5.static.flickr.com/4130/5010395815_8362a0e8e6.jpg
      Ответить
      • http://i.imgur.com/xXwMb.jpg
        позапрошлый год
        Ответить
        • Может эти типа номеров начинающихся на 555, чтобы не пинговали по чём зря?
          Ответить

    Добавить комментарий