PDNS_RECORD rec;
DnsQuery_A("ns.server.ru",DNS_TYPE_A,DNS_QUERY_STANDARD,NULL,&rec,NULL);
String record = rec->Data.A.IpAddress;
Memo1->Lines->Add(record);
как преобразовать IP в нормальный вид
Код:
в мемо выодится вместо 192.168.10.85 число 1426761920, я понимаю что его надо перевести в двоичный вид разделить на октеты и опять собрать в десятичный, но КАК это релизовать програмно?
1426761920(10)=1010101000010101010100011000000(2)=550AA8C0(16)
разобьём побайтно (8 бит):
10101010.00010101.01010001.1000000(2)=55.0A.A8.C0(16)=85.10.168.192(10) - Вуа-ля! имеем наш ай-пи, только записанный наоборот... :)
кстати, в соседней теме, кажется, показано, как можно это дело запихнуть в строку...
Код:
int ip = 1426761920; // например
AnsiString sIP;
sIP.printf( "%d.%d.%d.%d", (ip & 0x000000FF), (ip & 0x0000FF00) >> 8, (ip & 0x00FF0000) >> 16, (ip & 0xFF000000) >> 24 );
AnsiString sIP;
sIP.printf( "%d.%d.%d.%d", (ip & 0x000000FF), (ip & 0x0000FF00) >> 8, (ip & 0x00FF0000) >> 16, (ip & 0xFF000000) >> 24 );