MES3.0はLinuxの下位互換性であり、MES3.0のユーザープログラムは原則としてLinuxでも同じソースコードで動作します。
以下、MES3.0で動作確認されたLinuxとソースコード互換のネームサーバ情報取得の例です。
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <netinet/in.h>
int main(int argc, char* argv[]) {
struct hostent* hp;
char buf[INET_ADDRSTRLEN + 1];
unsigned int i, addr;
if((hp = gethostbyname(argv[1])) == NULL){
printf("gethostbyname\n");
return 0;
}
printf("h_name = %s\n", hp->h_name );
printf("h_addrtype = %d\n", hp->h_addrtype );
printf("h_length = %d\n", hp->h_length );
for(i = 0;hp->h_aliases[i];i++) {
printf("h_aliases[%d] = %s\n", i, hp->h_aliases[i]);
}
for(i = 0;hp->h_addr_list[i];i++) {
struct in_addr sin_addr;
bcopy( hp->h_addr_list[i], &sin_addr, hp->h_length );
inet_ntop(AF_INET, &sin_addr.s_addr, buf, INET_ADDRSTRLEN);
printf("h_addr_list[%d] = %s = %x ", i, buf, ntohl(sin_addr.s_addr));
inet_pton(AF_INET, buf, &addr);
printf("%x\n", ntohl(addr));
}
return 0;
}