Created
March 16, 2020 20:21
-
-
Save lehaiquantb/74e9f97f1f9afd5f90bb3f3c70aa549b to your computer and use it in GitHub Desktop.
Network Programming LeHaiQuan20173316
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
#define _WINSOCK_DEPRECATED_NO_WARNINGS | |
#include <winsock2.h> | |
#include <ws2tcpip.h> | |
#pragma comment(lib, "ws2_32") | |
//Hàm kiểm tra tên miền | |
int checkIsDomain(char* domain,int last) { | |
int i = 0; | |
//Tên miền ko thể chứa kí tự - ở đầu hoặc cuối | |
if (domain[0] == '-' || domain[last-1] == '-') return 0; | |
//Tên miền chỉ chứa các ký tự chữ cái, chữ số, dấu gạch ngang và dấu chấm | |
for (i = 0; i < last; i++) { | |
if (domain[i] == '-' || domain[i] == '.' || (domain[i] >= 'a' && domain[i] <= 'z') || (domain[i] >= '0' && domain[i] <= '9')) continue; | |
else return 0; | |
} | |
return 1; | |
} | |
int main() | |
{ | |
char domain[256]; | |
printf("Nhap ten mien\n"); | |
scanf_s("%s",domain,sizeof(domain)); | |
int last; | |
for (last = 0; last < 256; last++) | |
{ | |
if (domain[last] == '\0') break; | |
} | |
if (checkIsDomain(domain, last) == 1) { | |
// Khoi tao thu vien Winsock | |
WSADATA wsa; | |
WSAStartup(MAKEWORD(2, 2), &wsa); | |
//Khai báo con trỏ info trỏ tới cấu trúc địa chỉ tên miền | |
addrinfo* info; | |
//Khai báo biến cấu trúc addr là cấu trúc địa chỉ server | |
SOCKADDR_IN addr; | |
//Thực hiện hàm phân giải tên miền | |
int ret = getaddrinfo(domain, "http", NULL, &info); | |
//Thành công | |
if (ret == 0) | |
{ | |
//Thực hiện lưu cấu trúc địa chỉ tên miền lấy đc cho ctruc địa chỉ server | |
memcpy(&addr, info->ai_addr, info->ai_addrlen); | |
printf("Phan giai thanh cong\n"); | |
//Hàm inet_ntoa chuyển dạng số nguyên sang xâu địa chỉ | |
printf("Dia chi IP: %s", inet_ntoa(addr.sin_addr)); | |
} | |
//Thất bại | |
else | |
{ | |
printf("Khong the phan giai ten mien"); | |
} | |
} | |
else printf("Ten mien khong dung"); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment