好奇怪的问题!关于inet_addr函数!(0分)

  • 主题发起人 主题发起人 paf
  • 开始时间 开始时间
P

paf

Unregistered / Unconfirmed
GUEST, unregistred user!
我在 Edit1 中输入一个“010.010.010.010”的IP地址,
再使用下面语句,看看它的数值!

Myip := inet_addr(pchar(edit1.text));
form1.caption:=inttohex(myip,8);

010.010.010.010 显示的数值是: 08080808

但我如果在 EDIT1 中输入 10.10.10.10
输出却是: 0A0A0A0A

这是为什么!是不是“inet_addr”的问题啊,为什么会这样!
难道"010.010.010.010" 和 "10.10.10.10"不是代表同一个IP吗?
为什么会出现两个不同的值!



 
inttohex是将整形转化成16进制,而inet_addr是cardinal类型的.
 
inttohex 也可以转Dword cardinal 的类型数据的吧.
哪要用什么转换函数?
 
没问题,你ping 010.010.010.010 看看也会发现ping 的是8.8.8.8
你用过c语言吧,0开头的是8进制,010就是8进制的10,换成10进制就是8呀
 
这样说"010.010.010.010" 和 "10.10.10.10"就不是同一个IP了,
我想"010.010.010.010" 和 "10.10.10.10"表示的是同一个IP值,要怎么办!
有没有一种简单方法把"010.010.010.010" 和 "10.10.10.10"转为同一个IP!
 
那你自己把ip地址分成4个部分,把前面的0你自己去掉了,反正你要是把010传给inet_addr他就当8进制了
 
接受答案了.
 
后退
顶部