Как преобразовать длинный IP адрес в короткий адрес-порт
|
Расшифровка аббривеатуры YAHOO(перевод):
Еще один иерархически навязчивый оракул.
|
Некоторые старые internet протоколы (такие как FTP) посылают IP адреса и номера портов в шестизначном формате XXX.XXX.XXX.XXX.XX.XXX Следующий код позволяет преобразовать такой адрес к нормальному четырёхзначному IP адресу.
procedure LongIPToShort(aLongIPAddress: string;
out ShortIPAddress: string; out PortNumber: Integer);
var
i, DotPos, tempPort: Integer;
tempAddy, temp: string;
TempStr: string;
begin
tempAddy := '';
tempStr := '';
// Определяем, какой символ использует отправитель
// в качестве разделителя длинного IP: , или .
if (POS(',', aLongIPAddress) <> 0) then
TempStr := ','
else
TempStr := '.';
for I := 1 to 4 do
begin
DotPOS := POS(TempStr, aLongIPAddress);
tempAddy := tempAddy + (Copy(aLongIPAddress, 1, (DotPos - 1)));
if I <> 4 then
TempADdy := TempAddy + '.';
Delete(aLongIpAddress, 1, DotPos);
end;
DotPos := Pos(TempStr, aLongIpAddress);
temp := Copy(aLongIpAddress, 1, (DotPos - 1));
tempPort := (StrToInt(temp) * 256);
Delete(aLongIpAddress, 1, DotPos);
TempPort := tempPort + StrToInt(ALongIpAddress);
ShortIPAddress := TempADdy;
PortNumber := tempPort;
end;
|
|