V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
caoyue
V2EX  ›  分享发现

原来 IP 地址还可以用混合进制或是整数来表示

  •  
  •   caoyue · 2014-05-18 03:28:43 +08:00 · 3728 次点击
    这是一个创建于 3638 天前的主题,其中的信息可能已经有所发展或是发生改变。
    14 条回复    2014-05-22 16:32:38 +08:00
    leecade
        1
    leecade  
       2014-05-18 06:08:42 +08:00
    谢谢 长知识了,

    所有浏览器 / 端 都支持吗?
    Xrong
        2
    Xrong  
       2014-05-18 08:35:25 +08:00   ❤️ 1
    楼主是从《Web之困》2.1.4节看到的么?
    riaqn
        3
    riaqn  
       2014-05-18 09:02:05 +08:00
    @leecade 这个特性是由socket库提供的
    man inet_aton

    只要用这个函数来解析ip字符串的,都支持这些表示格式。
    akfish
        4
    akfish  
       2014-05-18 09:32:13 +08:00
    我在想要是某个IP地址的某种进制表达恰好是靓号。。。
    Delbert
        5
    Delbert  
       2014-05-18 11:08:53 +08:00
    是的,所有的浏览器都可以
    Delbert
        6
    Delbert  
       2014-05-18 11:09:20 +08:00
    @akfish 谁闲的没事输入IP啊,抢注域名才是正道。
    akfish
        7
    akfish  
       2014-05-18 11:29:31 +08:00
    @Delbert IP这种当然是可遇不可求,要受地域限制,投资投机都不现实。
    不过你觉得什么域名干得过Google DNS的8.8.8.8和4.4.4.4?
    caoyue
        8
    caoyue  
    OP
       2014-05-18 11:38:52 +08:00
    @Xrong
    搜索的时候发现个奇葩的 IP 地址居然可以访问,然后好奇了解了下。
    这本书看起来不错,感谢:)

    @riaqn
    是的,而且不同系统都实现了这个特性。
    但是我还没有搜索到相关的文档,rfc 2396 和 rfc 1738 也都是语焉不详。
    vmebeh
        9
    vmebeh  
       2014-05-18 11:40:56 +08:00
    反了吧

    IPv4
    “由32位二进制数组成,为便于使用,常以XXX.XXX.XXX.XXX形式表现,每组XXX代表小于或等于255的10进制数。”
    http://zh.wikipedia.org/wiki/IP%E5%9C%B0%E5%9D%80
    riaqn
        10
    riaqn  
       2014-05-18 12:05:31 +08:00
    @caoyue
    rfc的那几个标准不了解,看了下rfc2396, 实际上只是规定了URI的格式,对ipv4的格式仅限于
    IPv4address = 1*digit "." 1*digit "." 1*digit "." 1*digit
    至于rfc1736……好吧我没看懂他在说什么

    然后是inet_aton(),在manual上,有句话:inet_aton() is not specified in POSIX.1-2001, but is available on most systems.
    riaqn
        11
    riaqn  
       2014-05-18 12:13:29 +08:00
    @akfish 8.8.8.8 和 8.8.4.4
    vibbow
        12
    vibbow  
       2014-05-18 16:31:22 +08:00
    @akfish http://88888888/
    SoloCompany
        13
    SoloCompany  
       2014-05-20 23:11:33 +08:00
    在看 google safe browsing api 的时候有留意过这个,不过没去查过 rfc

    这一节
    https://developers.google.com/safe-browsing/developers_guide_v2#Canonicalization

    > If the hostname can be parsed as an IP address, it should be normalized to 4 dot-separated decimal values. The client should handle any legal IP- address encoding, including **octal**, **hex**, and **fewer than 4 components**

    以及这个用例
    > Canonicalize("http://3279880203/blah") = "http://195.127.0.11/blah”;
    Delbert
        14
    Delbert  
       2014-05-22 16:32:38 +08:00
    @akfish
    当属 2.3.3.3 了……233333333333333333333
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2156 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 15:51 · PVG 23:51 · LAX 08:51 · JFK 11:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.