مۇسابىقىگە قاتناشقىلى بىر نەچچە كۇن بۇلۇپ قاپتۇ . قارىسام بۇ مۇسابىقىنى كۇرىدىغانلا بەكلا ئاز ، مەن VB توغرىسىدا يوللانغان ھەر بىر ماقالىنى بىر نەچچە رەت كۇرۇپ چىقىمەن ، بۇنىڭ قېتىدا ئۇزۇمنىڭ تىمىلىرىمۇ بار ئەلۋەتتە . كۇرۇشىمدىكى سەۋەپ بولسا بۇ ھەقتە سورالغان سۇئاللار بارمۇ - يوق دىگەندەك . ئەلۋەتتە نۇرغۇن تورداشلار VB بىلىملىرىنى مۇكەممەل بىلمەسلىكى ھەتتاكى پەقەتلا بىلمەسلىكى تۇرغانلا گەپ!!! مەنمۇ بەك بىلىم كەتمەيمەن پەقەتلا بىلىدىغىنىم سەينا تېخىمۇ قىزىپ كەتسە (تور توختاشتىن بۇرۇن شۇنداق قىزغىن ئىدى) يەنە شۇنداق قىزىپ كەتسە دىگەن ئۇمۇتتە بىلگەن نەرسىلىرىمنى ئازراق چۇشەنچە قىلىپ يوللاپ قويدۇم . بۇ ئارقىلىق بىزنىڭ ئۇستازلار ، ۋە يېڭى ئوگەنگۇچىلەر بىلەن ئازراق ئورتاقلىشىپ بىقىش ... بۇ ئارقىلىق بىلمىگەننى بىلىۋېلىش ، بىلمىگەنگە بىلدۇرۇش ئىدى. بۇرۇنقى ساينانىڭ شۇئارى بولسا << بىلگەننى يوللاڭ بىلمىگەنلەر بىلىۋالسۇن! بىلمىەەننى سوراڭ بىلگەنلەر دەپ بەرسۇن! >> مانا بۇ ئىنتىلنىڭ شۇنداقلا ئىنتىللىقلارنىڭ شۇئارى ئىدى.
ئۇنداقتا گەپ مۇشۇ يەردە ئاخىرلاشسۇن .
ئەمسە بىز بىر دانە Form ، بىر دانە Module . يەنە بىرCommand . يەنە ئىككى دانە Text سىزىڭ . يەنە كونوپكا تاختىسىدىن ctrl+t بۇ ئىككىسىنى بېىسىڭ چىققان تىزىملىكتىن microsoft winsock Control 6.0 بۇ كونتىرولنى قۇشۇڭ . قۇشۇپ بولغان بولسىڭىز Form نىڭ ئۇستىگە Winsock بۇ كونتىرونىمۇ قۇشۇڭ
ھەممىنى قۇشۇپ بولغان بولسىڭىز ئەمدى Module كود يېزىش رايۇنىغا توۋەندىكى كودنى چاپلاڭ.
- Option Explicit
- Public Function Utf8ToUnicode(Utf() As Byte) As String
- Dim utfLen As Long
- utfLen = -1
- On Error Resume Next
- utfLen = UBound(Utf)
- If utfLen = -1 Then Exit Function
-
- On Error GoTo 0
-
- Dim I As Long, J As Long, K As Long, N As Long
- Dim B As Byte, cnt As Byte
- Dim Buf() As String
- ReDim Buf(utfLen)
-
- I = 0
- J = 0
- Do While I <= utfLen
- B = Utf(I)
-
- If (B And &HFC) = &HFC Then
- cnt = 6
- ElseIf (B And &HF8) = &HF8 Then
- cnt = 5
- ElseIf (B And &HF0) = &HF0 Then
- cnt = 4
- ElseIf (B And &HE0) = &HE0 Then
- cnt = 3
- ElseIf (B And &HC0) = &HC0 Then
- cnt = 2
- Else
- cnt = 1
- End If
-
- If I + cnt - 1 > utfLen Then
- Buf(J) = "?"
- Exit Do
- End If
-
- Select Case cnt
- Case 2
- N = B And &H1F
- Case 3
- N = B And &HF
- Case 4
- N = B And &H7
- Case 5
- N = B And &H3
- Case 6
- N = B And &H1
- Case Else
- Buf(J) = Chr(B)
- GoTo Continued:
- End Select
-
- For K = 1 To cnt - 1
- B = Utf(I + K)
- N = N * &H40 + (B And &H3F)
- Next
-
- Buf(J) = ChrW(N)
- Continued:
- I = I + cnt
- J = J + 1
- Loop
-
- Utf8ToUnicode = Join(Buf, "")
- End Function
مەزمۇننى كۆچۈرۈۋېلىش ئەمدى Form نىڭ كود يېزىش رايۇنىنى ئېچىپ ئىچىدىكى ھەممە كودلارنى ئۇچۇرۇپ تاشلىغاندىن كىيىن توۋەندىكى كودنى چاپلاڭ
- Option Explicit
- Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
- Private Sub Form_Load()
- Text1.Text = "intil.biz"
- End Sub
- 'ulaxni tamamlax
- Private Sub sock_Connect()
- sock.SendData Text1.Text & vbCrLf
- 'MsgBox sock.RemoteHost
- End Sub
- Private Sub sock_DataArrival(ByVal bytesTotal As Long)
- Dim Data() As Byte
- Dim strData As String
- 'sock.GetData dx, vbByte
- Call sock.GetData(Data, vbByte, bytesTotal)
- strData = Utf8ToUnicode(Data)
- If Analyse(strData) Then
- Text2.Text = Text2.Text & AddCrtf(strData)
- Else
- Text2.Text = ""
- MsgBox "ixlitilmigan isim!"
- End If
- End Sub
- 'isim mulazimitirdiki tipi iniklax
- Public Function SelectSvr(ByVal strDomainExt As String) As Integer
- Select Case strDomainExt
- Case "edu.cn"
- SelectSvr = 0
- Case "cn", "com.cn", "net.cn", "org.cn"
- SelectSvr = 1
- Case "com", "net", "edu"
- SelectSvr = 2
- Case "biz"
- SelectSvr = 10
- Case "info"
- SelectSvr = 11
- Case "name"
- SelectSvr = 2
- Case "tw"
- SelectSvr = 6
- Case "jp"
- SelectSvr = 7
- Case "kr"
- SelectSvr = 8
- Case "cc"
- SelectSvr = 12
- Case "org"
- SelectSvr = 14
- End Select
- End Function
- 'tizimlimigan isimni iniklax
- Public Function GetDomainExt(ByVal strDomain As String) As String
- GetDomainExt = Mid(strDomain, InStr(strDomain, ".") + 1)
- End Function
- 'isim tapsili uqurga irixix
- Public Function Analyse(p_ReData) As Boolean
- Dim strDomainExt As String
- '
- Dim arrKEY(14) As String
- Dim I
- arrKEY(0) = "NO FOUND" '
- arrKEY(1) = "NO MATCHING RECORD"
- arrKEY(2) = "NO MATCH FOR"
- arrKEY(3) = "NOT FOUND" '
- arrKEY(4) = "NOT REGISTERED TO KRNIC" '
- For I = 0 To 4
- If InStr(UCase(p_ReData), arrKEY(I)) <> 0 Then
- Analyse = False
- Exit Function
- End If
- Next
- Analyse = True
- End Function
- Function AddCrtf(str) As String
- Dim strContent As String
- strContent = Replace(str, Chr(13), "")
- strContent = Replace(strContent, Chr(10), vbCrLf)
- AddCrtf = strContent
- End Function
مەزمۇننى كۆچۈرۈۋېلىش ئەمدى command1 نىڭ قىممىتىگە بۇنى يېزىڭ .
- Private Sub command1_Click()
- Dim intServer As Integer
- Dim strDomainExt As String
- 'isim baxkurdigan bikatlardin tizim ahwalini takxurux kodi
- Dim arrHosts(14) As String
- arrHosts(0) = "whois.edu.cn"
- arrHosts(1) = "whois.cnnic.net.cn"
- arrHosts(2) = "whois.internic.net"
- arrHosts(3) = "whois.arin.net"
- arrHosts(4) = "whois.apnic.net"
- arrHosts(5) = "whois.ripe.net"
- arrHosts(6) = "whois.twnic.net"
- arrHosts(7) = "whois.nic.ad.jp"
- arrHosts(8) = "whois.krnic.net"
- arrHosts(9) = "whois.lacnic.net"
- arrHosts(10) = "whois.biz" 'BIZ
- arrHosts(11) = "whois.afilias.info"
- arrHosts(12) = "whois.enic.cc" 'CC
- arrHosts(13) = "whois.crsnic.net" '.
- arrHosts(14) = "whois.pir.org"
- strDomainExt = GetDomainExt(Text1.Text)
- Text2.Text = ""
- intServer = SelectSvr(strDomainExt)
- sock.Close
- sock.Connect arrHosts(intServer), 43
- '
- End Sub
مەزمۇننى كۆچۈرۈۋېلىش
بۇنىڭدىن كىيىن ۋاقتىم سەل قىس بۇلۇپ قالىدۇ . يۇقارقى كودنىڭ چۇشەنچىلىرىنى كود تا بىر قۇر چۇشەنچە بىرىپ قويدۇم يەنە چۇشۇنۇشلۇك بولمىسا ئىنكاس قالدۇرۇڭ
|