Преобразование IP в строку
function IPtoStr(IP: LongWord): String; begin Result := Format('%d.%d.%d.%d', [ (IP and $ff000000) shr 24, (IP and $00ff0000) shr 16, (IP and $0000ff00) shr 8, (IP and $000000ff) shr 0 ]); end;
Пример:
procedure TForm1.Button1Click(Sender: TObject); begin Edit1.Text:= IPtoStr1($C0A80101{192.168.1.1}); end;
Сеть может связывать разные аппаратные платформы, поэтому требуется согласование форматов передаваемых данных, в частности форматов целых чисел. Процессоры Intel хранят их, начиная с младшего байта, а некоторые другие процессоры (например, Motorola) — начиная со старшего. Сетевой формат представления таких чисел совпадает с форматом процессора Motorola, т.е. на платформах с процессором Intel необходимо переставлять байты при преобразовании чисел в сетевой формат.
Отсюда: 192.168.1.1 = $C0A80101.
Заметьте, мы не число переводим в строку, а IP-адрес.
Комментарии