3~4文字の空いている.comドメインをVisualBasic2008Expressでプログラムして、Whoisサイトで探そうと思います。
順ぐりに探すのではなく、ランダムな英字を投げようと思うのですが、半角英字をランダムに生成する方法がわかりません。
どのようなコードを書けばよろしいでしょうか? よろしくお願い申し上げます。
(なお、「そんなことするとWhoisサイトにブロックされるよ」というご意見もあるかと思いますが、サイトに文字列を投げる間隔も十分に空け、ランダム性のある間隔にすれば大丈夫かと思うのですが、いかがでしょう)
下記のコードで生成できます。
使い方の例:Dim result as string = CreateRandomString(4)
で4桁のランダムな半角英数字がresultに入ります。
''' <summary> ''' ランダムな文字列の生成 ''' </summary> ''' <param name="length">文字数</param> ''' <returns>ランダムな文字列("0" To "9", "A" To "Z", "a" To "z")</returns> Private Shared Function CreateRandomString(ByVal length As Integer) As String CreateRandomString = "" '指定の文字数になるまでランダムな文字を生成 Dim strKey As String = "" Do Until Len(strKey) >= length 'ランダムな文字を生成 Dim strKeyChar As String = Chr(RollDice(122 - 47) + 47) '数字・英字の範囲かチェック Select Case strKeyChar Case "0" To "9", "A" To "Z", "a" To "z" 'Case "0" To "9" strKey = strKey & strKeyChar End Select Loop CreateRandomString = strKey End Function ''' <summary> ''' 暗号サービス プロバイダの暗号乱数ジェネレータを使っての乱数の生成(MSのヘルプから引用) ''' </summary> ''' <param name="NumSides">出力値の最大値</param> ''' <returns>乱数(1~指定した最大値)</returns> Private Shared Function RollDice(ByVal NumSides As Integer) As Integer Dim randomNumber(0) As Byte Dim Gen As RNGCryptoServiceProvider = New Global.System.Security.Cryptography.RNGCryptoServiceProvider() Gen.GetBytes(randomNumber) Dim rand As Integer = Convert.ToInt32(randomNumber(0)) Return rand Mod NumSides + 1 End Function
ありがとうございます。助かりました!