Внешний вид сайта:

Преобразование IP в строку

Как преобразовать IP (и число и точки) в строку? Берем адрес 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-адрес.

Комментарии

Нет комментариев. Ваш будет первым!