Mega Code Archive

 
Categories / Delphi / Examples
 

How to convert longip’s to shortip’s and vice versa

IP converting (long/short) Example: 34753784563 instead of 193.234.22.12 used by different applications like IRC (DCC algorithm) Converts a LongIP to a ShortIP Function shortIP(const s: string): string; Var Ip : int64; a, b, c, d : Byte; Begin IP := StrToInt64(s); a := (IP AND $FF000000) SHR 24; b := (IP AND $00FF0000) SHR 16; c := (IP AND $0000FF00) SHR 8; d := (IP AND $000000FF); Result := Format('%d.%d.%d.%d', [a, b, c, d]); End; Convert a ShortIP to a LongIP Function LongIP(IP : String) : String; Var IPaddr : array[1..4] of Word; Temp : string; Res : DWord; I : integer; Begin Temp := IP + '.'; For I:=1 To 4 Do Begin Try IPaddr[i] := strtoint(copy(Temp,1,pos('.',Temp) - 1)); Delete(temp,1,pos('.',Temp)); If (IPaddr[i] > 255) Then raise Exception.Create(''); Except // Check the IP result := 'Invalid IP address.'; Exit; End; End; Res := (ipaddr[1] SHL 24) + ipaddr[1] + (ipaddr[2] SHL 16) + ipaddr[2] + (ipaddr[3] SHL 8) + ipaddr[3] + (ipaddr[4]); Result := Format('%u',[res]); End;