Windows IP地址怎么转换为String类型?-----------在线等,着急中-------(150分)

  • 主题发起人 主题发起人 guofengdelphi
  • 开始时间 开始时间
G

guofengdelphi

Unregistered / Unconfirmed
GUEST, unregistred user!
通过windows Api 函数取出系统IP地址,是Longword类型,现在怎么转换为String类型?
两个类型之间怎么互相转换?
请高手指教?
 
inttostr()行吗
要不WORDTOSTR()
 
不行的,inttostr()转换后是个用户不能识别的字符串,不是192.168.0.1的格式。
 
貌似楼上的是答案
 
lognword范围是0..4294967295 你说的带3个.的格式不对吧
 
to 李翔鹏:
lognword范围是0..4294967295,但是怎么转换为人为能识别的ip地址格式?
 
你用什么API函数实现的IP地址.
 
我这个系统是通过dll借口函数取得了外部硬件设备IP,返回的是Longword类型的ip地址,
我现在想把它转换为192.168.0.1格式,不知道怎么转换?
 
它的直接结果是什么样的?
 
使用WINSOCK 中的inet_ntoa就可以了
 
ip地址:3232235778
子网掩码:4294967040
网关:3232235777
 
LongWord是32位的,IP地址,每个段都是0-255,也就是8位的,所以返回值应该是4个8位的Byte拼起来的,你把LongWord拆分为4段,分别用IntToStr就可以了
 
var InAddr:TInAddr;
WSData: TWSAData;
begin
WSAStartup(MakeWord(2,0),WSData);
InAddr.S_addr:=ntohl(3232235778);
Caption:=inet_ntoa(InAddr);
 
to Hydra0
你是说先把longword类型分段裁分成4个8位的,然后转换inttostr()是吗?
delphi中用什么函数裁呢?
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2105616
 
先转化为二进制,把二进制数据分成4部分,每个部分8位 .在把每个部分转化为十进制 之间加个"."分开
 
ip地址:3232235778 转换后就是192.168.1.2
子网掩码:4294967040 255.255.255.0
网关:3232235777 192.168.1.1
 
不用转2进制的,Delphi提供了相关函数拆分数据的
HiWord LoWord分别取32位数的高低16位
HiByte LoByte分别取16位数的高低8位
 
to xmcccc
问个愚蠢的问题,用户想输入别的ip地址,怎么再转回去呢?
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
735
import
I
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部