例如UDP协议中可以指定一个IP地址来进行通讯,也可以进行网络广播(即一次可以把信息发给同一个IP段)。我们知道,1~126.XXX.XXX.XXX (A类网)、128~191.XXX.XXX.XXX(B类网)、192~254.XXX.XXX.XXX(C类网)的广播地址分别为1~126.255.255.255 (A类网)、128~191.XXX.255.255(B类网)、192~254..XXX.XXX.255.(127开头的IP属于保留地址,如127.0.0.1是自己的地址)。比如说IP地址192.168.0.45属于C类网,那么它的广播地址就是192.168.0.255.又比如说IP地址125.161.0.45属于C类网,那么它的广播地址就是125.255.255.255.如果你经常要用到这个的话,这时候我们就可以写一个以下的函数:
Function Trun_ip(S:string):string;
var s1,s2,s3,ss,sss,Head:string;
n,m:integer;
begin
//s:=192.168.0.23
sss:=S;
n:=pos('.',s);
s1:=copy(s,1,n);//192.
m:=length(s1);
delete(s,1,m);
Head:=copy(s1,1,(length(s1)-1));
n:=pos('.',s);
s2:=copy(s,1,n);//168.
m:=length(s2);
delete(s,1,m);
n:=pos('.',s);
s3:=copy(s,1,n);//0.
m:=length(s3);
delete(s,1,m);
ss:=sss;//127.XXX.XXX.XXX
if strtoint(Head) in [1..126] then ss:=s1+'255.255.255'; //1~126.255.255.255 (A类网)
if strtoint(Head) in [128..191] then ss:=s1+s2+'255.255';//128~191.XXX.255.255(B类网)
if strtoint(Head) in [192..254] then ss:=s1+s2+s3+'255'; //192~254.XXX.XXX.255(C类网)
Result:=ss; ////192.168.0.255
end;
使用这个函数时只要把一个有效的IP地址送进去,就会返回该IP地址的广播地址。如Trun_ip(192.168.0.45)就会返回192.168.0.255.