cURL 为什么会把十进制数字转为 IP? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zhoudaiyu
V2EX    cURL

cURL 为什么会把十进制数字转为 IP?

  •  1
     
  •   zhoudaiyu
    PRO
    2021-04-16 19:07:17 +08:00 via iPhone 3685 次点击
    这是一个创建于 1724 天前的主题,其中的信息可能已经有所发展或是发生改变。

    curl 8000 会转换为 curl 0.0.31.64 ,后面的 IP 就是把 8000 转为二进制高位补 0,然后再从高位到低位 8 个数字一切割转为十进制。不太明白 curl 为啥这么设计?

    第 1 条附言    2021-04-16 21:23:38 +08:00

    学到了学到了,谢谢大家

    12 条回复    2021-04-17 15:41:35 +08:00
    phpfpm
        1
    phpfpm  
       2021-04-16 19:08:10 +08:00
    ip 就是这样啊。。。。
    xiri
        2
    xiri  
       2021-04-16 19:10:14 +08:00
    不止 curl,ping 也是一样的
    0ZXYDDu796nVCFxq
        3
    0ZXYDDu796nVCFxq  
       2021-04-16 19:21:47 +08:00
    IPv4 地址是 4 个字节
    可以转换成 integer 的表达形式,取值是 [0, 4294967295], [2^0 - 1, 2^32 - 1]
    在网络数据包中都是用 4 个字节来存储

    1.1.1.1 只是便于人类阅读使用的格式而已
    Tink
        4
    Tink  
    PRO
       2021-04-16 19:32:52 +08:00 via Android
    没毛病呀
    iseki
        5
    iseki  
       2021-04-16 19:39:35 +08:00 via Android
    小时候还看有教程教过把 IP 转写成十进制,迷惑不懂的人的小把戏(
    crclz
        6
    crclz  
       2021-04-16 19:47:35 +08:00
    《计算机网络》谢希仁
    weyou
        7
    weyou  
       2021-04-16 20:03:25 +08:00 via Android
    ip 地址在计算机内部本来就是用 32bit 的整数来表达的啊。不止 curl,ping,很多网络工具都这样,最常见的比如浏览器。其实这不是这些网络工具的功能,其根本原因是 socket 库里的 inet_aton 函数就支持这个特性。也就是你自己写个需要用到 ip 地址的工具,也会天然支持这个特性。
    nightwitch
        8
    nightwitch  
       2021-04-16 21:18:00 +08:00
    因为 ip 地址的合法表示就是一个 uint32.
    表示成你熟悉的 xxx.xxx.xxx.xxx 只是为了方便人类好读。
    ericls
        9
    ericls  
       2021-04-16 21:27:57 +08:00 via iPhone
    用户输入的永远是 string
    ch2
        10
    ch2  
       2021-04-16 21:31:54 +08:00
    ip 地址本来就是个数字,点分十进制是转化的结果
    TyteKa
        11
    TyteKa  
       2021-04-17 02:06:25 +08:00
    是 libc 做的
    krixaar
        12
    krixaar  
       2021-04-17 15:41:35 +08:00
    当年 COD:MW3 刚出的时候,想在寝室打 Spec OPs 局域网联机,等 teknogods 做补丁,然后他们出的补丁为了好看,IP 地址分成四段还补零,然后寝室就有特定的人连不上,最后发现至少在 Win 上,IP 地址前头带零的当作八进制( ping 127.0.0.9 是可行的,ping 127.000.000.009 是不可行的,因为八进制没有 9 ),还专门跑他们网站上去提了 bug……
    这里面坑是真多。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5675 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 06:26 PVG 14:26 LAX 22:26 JFK 01:26
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86