Главная страницаОбратная связьКарта сайта

Проверяет, является ли строка IP адрессом или именем хоста



'В случае успеха, возвращает True
Private Function IsValidIPHost(ByVal HostString As String) As Boolean
Dim sSplit() As String
Dim i As Integer
Dim blnDomain As Boolean
Dim TOP_DOMAINS As String

'для проверки доменного имени верхнего уровня
TOP_DOMAINS = "COM OrG NET EDU GOV MIL INT AF AL DZ As " & _
"AD AO AI AQ AG AR AM AW AC AU AT AZ BS BH BD BB BY BZ BT BJ " & _
"BE BM BO BA BW BV BR IO BN BG BF BI KH CM CA CV KY CF TD CL " & _
"CN CX CC CO KM CD CG CK CR CI HR CU CY CZ DK DJ DM Do TP EC " & _
"EG SV GQ ER EE ET FK FO FJ FI FR GF PF TF GA GM GE DE GH GI " & _
"GR GL GD GP GU GT GG GN GW GY HT HM VA HN HK HU Is IN ID IR " & _
"IQ IE IM IL IT JM JP JE JO KZ KE KI KP KR KW KG LA LV LB LS " & _
"LR LY LI LT LU MO MK MG MW MY MV ML MT MH MQ MR MU YT MX FM " & _
"MD MC MN MS MA MZ MM NA NR NP NL AN NC NZ NI NE NG NU NF MP " & _
"NO OM PK PW PA PG PY PE PH PN PL PT PR QA RE RO RU RW KN LC " & _
"VC WS SM ST SA SN SC SL SG SK SI SB SO ZA GS ES LK SH PM SD " & _
"SR SJ SZ SE CH SY TW TJ TZ TH TG TK To TT TN TR TM TC TV UG " & _
"UA AE GB US UM UY UZ VU VE VN VG VI WF EH YE YU ZR ZM ZW UK"

HostString = UCase$(Trim$(HostString))

sSplit = Split(HostString, ".")

' проверяем строку на формат 'xxx.xxx.xxx.xxx' (IP адресс)
If UBound(sSplit) = 3 Then
For i = 0 To 3
If Not IsNumeric(sSplit(i)) Then blnDomain = True

If i = 0 Then
If Val(sSplit(i)) > 239 Then blnDomain = True
Else
If Val(sSplit(i)) > 255 Then blnDomain = True
End If
Next
If blnDomain = False Then
IsValidIPHost = True
Exit Function
End If
End If

'проверяет, существует ли доменое имя верхнего уровня
If UBound(sSplit) > 0 And InStr(TOP_DOMAINS, sSplit(UBound(sSplit))) > 0 Then
IsValidIPHost = True
Exit Function
End If

End Function


Обсудить статью на форуме


Если Вас заинтересовала или понравилась информация программирование на Visual Basic - "Проверяет, является ли строка IP адрессом или именем хоста", Вы можете поставить закладку в социальной сети или в своём блоге на данную страницу:

Так же Вы можете задать вопрос по работе этого модуля или примера через форму обратной связи, в сообщение обязательно указывайте название или ссылку на статью!
   


Copyright © 2008 - 2017 Дискета.info