후이즈 도메인 만료일자 자동체크 체크
아래는 도메인 목록을 배열로 가지고 있다고 가정하고 만들어진 프로그램 입니다.
kr의 경우 요즘은 utf8로 나오기 때문에 euckr 환경이신분은들은 캐릭터셋을 변경하는 기능이 한줄 더 들어가야 합니다.
그리고 후이즈 조회는 너무 많이 하면 차단 됩니다.
여기서 너무 많다는 기준은 없지만 최소 몇 백은 되기 때문에 도메인 만료일 체크하기 위해서 실행하는것에는 문제는 없습니다.
# 루트 도메인만 추출
$root_domains = [];
foreach ($domains as $domain) {
if ($domain === '_default_') continue; // 제외
if (preg_match('/([a-z0-9-]+\.(co\.kr|com|net|org|kr))$/i', $domain, $match)) {
$root_domains[] = $match[1];
}
}
$root_domains = array_unique($root_domains);
print_r($root_domains);
// exit;
# 후이즈 조회해서 날짜를 알아보도록 한다.
foreach ($root_domains as $domain) {
// echo $domain . PHP_EOL;
// continue;
$whois = shell_exec("whois {$domain}");
// echo $whois . PHP_EOL;
# kr 도메인 한글 utf-8
if (preg_match('/\.kr$/', $domain)) {
if (preg_match('/사용 종료일\s*:\s*([0-9. ]+)/u', $whois, $match)) {
print_r($match);
}
}
else {
if (
preg_match('/Expiry Date:\s*(.+)/i', $whois, $match) ||
preg_match('/Registrar Registration Expiration Date:\s*(.+)/i', $whois, $match)
) {
print_r($match);
}
}
}
이렇게 나온 결과를 알림 메시지를 보내주거나 해서 도메인 만료일자를 놓쳐서 당황해 하는 일이 생기지 않도록 합니다.
예전엔 12월 되면 다음해 탁상 달력에 1년치를 적어 놓곤 했는데요. 사실 이방법에 매일 눈으로 보기 때문에 좋은 방법중 하나 입니다.
2주 이내로 남았으면 본인이 사용하는 메신저나 SMS 등으로 알림을 보내는 기능을 추가 적으로 구현해 주면 됩니다.
✔ WHOIS란?
WHOIS는 인터넷 도메인이나 IP 주소에 대한 등록 정보를 조회할 수 있는 서비스
쉽게 말하면
"이 도메인 누가 소유하고 있는 거지?"
WHOIS = 도메인 명부 조회 서비스
✔ WHOIS로 알 수 있는 정보
- 도메인 소유자 정보 (개인정보 보호가 적용된 경우엔 일부 비공개)
- 도메인 등록일 만료일
- 등록 기관 (예: 가비아, 카페24, GoDaddy 등)
- 네임서버 정보 (DNS)
- 상태 정보 (잠금 여부, 갱신 가능 여부 등)