Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Chương trình C hiển thị hostname và địa chỉ IP


Phần này xem cách lấy tên máy (hostname) và địa chỉ IP của hệ thống cục bộ dễ dàng. Viết chương trình C tìm host name và IP.

Một số hàm sau dùng. Các hàm có nhiệm vụ khác nhau. Xem hàm và nhiệm vụ:

HàmMô tả
gethostname()Tìm tên host chuẩn cho máy cục bộ.
gethostbyname()Tìm thông tin host tương ứng tên host từ cơ sở dữ liệu host
inet_ntoa()Chuyển địa chỉ mạng IPv4 Internet thành chuỗi ASCII dạng thập phân chấm.

Ví dụ mã

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include <netdb.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>

void check_host_name(int hostname) {
    if (hostname == -1) {
        perror("gethostname");
        exit(1);
    }
}

void check_host_entry(struct hostent *hostentry) {
    if (hostentry == NULL) {
        perror("gethostbyname");
        exit(1);
    }
}

void IP_formatter(char *IPbuffer) {
    if (NULL == IPbuffer) {
        perror("inet_ntoa");
        exit(1);
    }
}

main() {
    char host[256];
    char *IP;
    struct hostent *host_entry;
    int hostname;
    hostname = gethostname(host, sizeof(host));
    check_host_name(hostname);
    host_entry = gethostbyname(host);
    check_host_entry(host_entry);
    IP = inet_ntoa(*((struct in_addr*) host_entry->h_addr_list[0]));
    printf("Current Host Name: %s\n", host);
    printf("Host IP: %s\n", IP);
}

Kết quả (Tested on Linux System)

Current Host Name: soumyadeep-VirtualBox
Host IP: 127.0.1.1