php 使用PHP CLI检查域的过期日期
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 使用PHP CLI检查域的过期日期相关的知识,希望对你有一定的参考价值。
#!/usr/bin/php
<?php
function get_ssl_domain_expiration($ssl_domain){
$i = 0;
$ssl_domain_data = array();
$domain = parse_url($ssl_domain, PHP_URL_HOST);
$g = stream_context_create (array("ssl" => array("capture_peer_cert" => true)));
$r = stream_socket_client("ssl://${domain}:443", $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $g);
$cert = stream_context_get_params($r);
$certinfo = openssl_x509_parse($cert['options']['ssl']['peer_certificate']);
$current_date = new DateTime(date('Y-m-d'), new DateTimeZone('America/Los_Angeles'));
$expiration_date = new DateTime(date('Y-m-d', $certinfo['validTo_time_t']), new DateTimeZone('America/Los_Angeles'));
$interval = $current_date->diff($expiration_date);
$days_left = (int)$interval->format('%a');
$ssl_domain_data = array(
'domain' => $domain,
'expiration_date' => $expiration_date->format('m/d/Y'),
'days_left' => $days_left,
);
return $ssl_domain_data;
}
if( $argv[1] ){
$normalized_domain = parse_url('http://' . str_replace(array('https://', 'http://'), '', $argv[1]), PHP_URL_HOST);
// echo "normalized_domain " . $normalized_domain . "\n";
if(filter_var('http://'.$normalized_domain, FILTER_VALIDATE_URL)){
$data = get_ssl_domain_expiration('https://'.$normalized_domain);
echo $data['expiration_date']." - ";
echo $data['domain']." has ";
echo $data['days_left']." days left";
echo "\n";
} else {
echo "\"" . $argv[1] . "\" is not a valid domain name.\n";
}
} else {
echo "You must supply a valid domain name.\n";
echo "Example:\n";
echo "php check-domain-expiration.php www.example.com\n";
}
以上是关于php 使用PHP CLI检查域的过期日期的主要内容,如果未能解决你的问题,请参考以下文章
PHP DateTime 信用卡过期
使用 AJAX 检查 PHP 会话是不是存在或过期
php 操作redis 以及几个常用命令
PHP - 当域的IP专用时检查域是不是与服务器的IP匹配
我如何检查会话是否将在PHP中过期[重复]
如何使用php检查域年龄