カテゴリー
PHP VBA

ドメインが利用可能かチェックするPHPスクリプト

ドメイン名が利用可能かチェックするのに dns_get_record 関数を使います。
パラメータには url か domain.com のようなドメイン名
結果はテキストで OK か NG を返します。

<?php
$url = $_GET["url"];
$res = parse_url($url);
$name = "";

if (isset($res['host'])) {
    $name = $res['host'];
} else if (isset($res['path'])) {
    $name = $res['path'];
}

header('Content-type: plain/text');
if (!empty($name)) {
    $result = dns_get_record($name);
    if ($result === false || empty($result)) {
        echo 'NG';
    } else {
        echo 'OK';
    }
} else {
    echo 'ERR';
}
exit;
?>

このPHPスクリプトをエクセルVBAから呼び出す例:

'
' ドメインチェック WebAPI
'
'   URL: https://www.northwind.mydns.jp/samples/webservice/checkdomain.php
'   パラメータ: url
'   レスポンス:
'        OK: 利用可能
'        NG: 利用不可
'
' Ex.
'  IsDomainAvailable("northwind.mydns.jp")        = True
'
'
Function IsDomainAvailable(DomainUrl As String) As Boolean
    On Error GoTo ErrHandler

    Dim Request As Object
    Dim checkerUrl As String

    IsDomainAvailable = False
    checkerUrl = "https://www.northwind.mydns.jp/samples/webservice/checkdomain.php"

    Set Request = CreateObject("WinHttp.WinHttpRequest.5.1")

    With Request
      .Open "GET", checkerUrl & "?url=" & DomainUrl, False
      .send

        If .StatusText = "OK" And .ResponseText = "OK" Then
            IsDomainAvailable = True
        End If
    End With

    Set Request = Nothing
    
    Exit Function
ErrHandler:
    Debug.Print Err.Number & ": " & Err.Description
End Function

Sub Test()

    Debug.Print IsDomainAvailable("northwind.mydns.jp")

End Sub

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください