ã¹·Ò§Ãкºà¤Ã×Í¢èÒ (Network) ... Port ¤×Í »Ãе٠ËÃ×Í ªèͧ·Ò§¢Í§¡ÒÃäËÅà¢éÒÍÍ¡¢Í§¢éÍÁÙÅ Áըӹǹ¢¹Ò´ 2 ¡¡ÓÅѧ 16 ËÃ×Íà·èҡѺ 65536 Port (ÁÕ¤èÒÃÐËÇèÒ§ 0 - 65535 ¹èФÃѺ) â´Â¤èÒµÑÇàÅ¢àËÅèÒ¹Õé¡ç¨Ðà»ç¹¤èÒâ´Â੾ÒÐ ËÃ×Í ¶Ù¡¡Ó˹´äÇéáÅéǢͧáµèÅÐ Port ÇèÒÁѹµéͧ·Ó§Ò¹ÍÐäà àªè¹ Port 20/21 ÊÓËÃѺ FTP (File Transfer Protocal) à¾×èÍãªé㹡ÒÃâ͹¶èÒÂä¿Åì ËÃ×Í Port 80 ÊÓËÃѺ HTTP (Hyper Text Transfer Protocol) à»ç¹¡ÒÃà¢éÒãªé§Ò¹ Web Browser ¹Ñè¹àͧ¤ÃѺ ... «Öè§äÁèáµè੾ÒÐÃкºà¤Ã×Í¢èÒÂà·èÒ¹Ñé¹ ÍØ»¡Ã³ì·Õèµè;èǧ¤ÍÁ¾ÔÇàµÍÃì Áѹ¡çµéͧÁÕ Port à¾×èÍÃѺÊè§¢éÍÁÙÅàËÁ×͹¡Ñ¹ àªè¹ COM Port ËÃ×Í Paralell Port ¹Ñè¹Âѧä§ÅèФÃѺ ... àÍÒËÅÑ¡¡ÒÃàº×éͧµé¹á¤è¹Õé¾Í ·ÕèàËÅ×ÍËÒ¢éÍÁÙÅà¾ÔèÁàµÔÁàÍÒàͧÍÕ¡¹èФÃѺ
»ÃÐ⪹ì¢Í§¡ÒÃà¢Õ¹â»Ãá¡ÃÁµÃǨÊͺ ËÃ×Í Scan ËÒ Port ÁÒãªé§Ò¹àͧ
- ÊÓËÃѺ¼Ùé´ÙáÅÃкºà¤Ã×Í¢èÒ ÊÒÁÒöµÃǨÊͺà¤Ã×èͧ¤ÍÁ¾ÔÇàµÍÃì (Client) ã¹Ãкº LAN ÇèÒà¤Ã×èͧä˹·Õèà»Ô´ Port ÊÓ¤Ñ ËÃ×Í ÍѹµÃÒÂàÍÒäÇé â´Â·ÕèäÁèµéͧà¢éÒ仹Ñè§ÍÂÙè˹éҨͧ͢à¤Ã×èͧ¹Ñ鹿àÅ àªè¹ Port TCP áÅÐ UDP 135 ¢Í§ DCOM RPC (Windows Distributed Component Object Model Remote Procedure Call) à¾ÃÒÐ Port ¹Õéà»ç¹ÃÙâËÇèãËé˹͹¹éÍ W32.Blaster.Worm à¢éÒÁÒÃØ¡ÃÒ¹ â¨ÁµÕä´é ... ¨Ö§·ÓãËé¼Ùé´ÙáÅÃкºÊÒÁÒöà¢éÒ仨Ѵ¡ÒÃá¡éä¢ã¹à¤Ã×èͧ Client ä´é·Ñ¹·èǧ·Õ ¡è͹·Õè¨ÐÅØ¡ÅÒÁ仡è͡ǹÃкºà¤Ã×Í¢èÒ·Ñé§ËÁ´ä´é
- à»ç¹¼Å§Ò¹¢Í§¼Ùé´ÙáÅÃкºàͧ¹Ñè¹áËÅÐ «Öè§ÊèǹãËè¡çÁÑ¡¨ÐàÍҢͧ¿ÃÕ¨Ò¡µèÒ§»ÃÐà·ÈÁÒãªé§Ò¹ áµè¡ç¹Ñè¹áËÅФÃѺ ºÒ§Í§¤ì¡Ã¡ç¤è͹¢éÒ§·Õè¨Ðà¢éÁ§Ç´ 㹡ÒÃ¹Ó Software ¨Ò¡ÀÒ¹͡ÁÒãªé§Ò¹ ... Áѹ¡çàÅÂà»ç¹ªèͧ·Ò§à»Ô´âÅè§ãËéµÑÇàÃÒ¹Óàʹͧҹã¹á¹Ç¤Ô´ÃÔàÃÔèÁÊÃéÒ§ÊÃäìä´éÂѧä§ÅèФÃѺ (àËÁ×͹àªè¹ã¹Í´Õµ·Õè¼Áà¤Â·ÓÁÒáÅéǤÃѺ)
- ä´éàÃÕ¹ÃÙé ½Ö¡½¹ ¨Ò¡¢Í§¨ÃÔ§ »ÃÐʺ¡Òóì¨ÃÔ§ ... ¨Ð·ÓãËéÁÕ¡ÒþѲ¹Ò¢Õ´¤ÇÒÁÊÒÁÒö¢Í§µ¹àͧÍÍ¡ä»ä´éÍÕ¡ ... ¤èÒµÑÇ¡çà¾ÔèÁ¢Öé¹µÒÁä»áËÅФÃѺ (Value Add) ... ÍÔÍÔÍÔÍÔÍÔ
|
 |
 ãªé Component à¾ÔèÁÁÒÍÕ¡ 2 µÑÇ â´ÂàÅ×Í¡¨Ò¡àÁ¹Ù Project --> Components ...
 Design Time
 Run Time
ÁÒ´Ùâ¤é´¡Ñ¹à¶ÍÐ ...
Option Explicit
' ¹Ñº¨Ó¹Ç¹ Port ·ÕèµÃǨ¾º
Dim CountPort As Long
' à¡çº¤èÒ Port àÃÔèÁµé¹ áÅÐ ¤èÒ¹Õé¨Ðà¾ÔèÁ¢Öé¹·ÕÅÐ 1 ä»àÃ×èÍÂæ¨¹¡ÇèҨФú
Dim PortToScan As Integer
' à¡çº¤èÒ IP Address à¾×èÍ¡Ó˹´ãËé¡Ñº Winsock
Dim strIP As String
' µÑÇá»Ãà¡çº¤èÒʶҹТͧ¡Òà Scan ËÒ Port
' ËÒ¡à»ç¹¨ÃÔ§ ʶҹСÓÅѧ Scan
' ËÒ¡à»ç¹à·ç¨ ʶҹÐËÂØ´¡Òà Scan äÇéªÑèǤÃÒÇ
Dim blnScan As Boolean
' ¡Ã³ÕÊÑè§ËÂØ´¡Òà Scan ªÑèǤÃÒÇ
Private Sub cmdStop_Click()
' ¡Ó˹´ False à¾×èÍËÂØ´¡Òà Scan Port
blnScan = False
End Sub
Private Sub Form_Load()
' µÑé§¿ÍÃìÁÍÂÙè¡Öè§¡ÅÒ§
Me.Move (Screen.Width - Me.Width) \ 2, (Screen.Height - Me.Height) \ 2
' »Ô´ Timer àÍÒäÇé¡è͹ à¾ÃÒÐÂѧäÁèä´éÊÑè§ãËéÁѹ·Ó§Ò¹
Timer1.Enabled = False
' µÑÇÍÂèÒ§¹èФÃѺ
txtStartIP(0).Text = "192"
txtStartIP(1).Text = "168"
txtStartIP(2).Text = "0"
txtStartIP(3).Text = "1"
' Port àÃÔèÁµé¹
txtPort(0).Text = "1"
' Port ÊÔé¹ÊØ´
txtPort(1).Text = "8000"
txtScanResult.Text = ""
cmdStop.Enabled = False
End Sub
' ###################################################
' ¡Òá´»ØèÁãËéàÃÔèÁµé¹ Scan ËÒ Port
' ###################################################
Private Sub cmdScan_Click()
On Error GoTo ErrorHandler
Dim Count As Integer
' µÃǨÊͺÇèÒ IP 㹡Òäé¹ËÒ ·Ñé§ 4 ªØ´ à»ç¹¤èÒÇèÒ§ËÃ×ÍäÁè
For Count = 0 To 3
If Trim(txtStartIP(Count).Text) = "" Or Len(Trim(txtStartIP(Count).Text)) = 0 Then
MsgBox "¡Ãسһé͹ËÁÒÂàÅ¢ IP Address ãËé¶Ù¡µéͧ´éÇÂ.", vbOKOnly + vbExclamation, "ÃÒ§ҹʶҹÐ"
Exit Sub
End If
Next Count
' µÃǨÊͺÇèÒ»é͹ËÁÒÂàÅ¢ Port ·Ñé§àÃÔèÁµé¹ áÅÐ ÊÔé¹ÊØ´ËÃ×ÍäÁè
If Trim(txtPort(0).Text) = "" Or Len(Trim$(txtPort(0).Text)) = 0 Then
MsgBox "¡Ãسһé͹ËÁÒÂàÅ¢ Port àÃÔèÁµé¹¡è͹´éÇÂ.", vbOKOnly + vbExclamation, "ÃÒ§ҹʶҹÐ"
txtPort(0).SetFocus
Exit Sub
ElseIf Trim(txtPort(1).Text) = "" Or Len(Trim$(txtPort(1).Text)) = 0 Then
MsgBox "¡Ãسһé͹ËÁÒÂàÅ¢ Port ÊÔé¹ÊØ´¡è͹´éÇÂ.", vbOKOnly + vbExclamation, "ÃÒ§ҹʶҹÐ"
txtPort(1).SetFocus
Exit Sub
' Port ÊÔé¹ÊØ´ µéͧÁÕ¤èÒÁÒ¡¡ÇèÒ Port àÃÔèÁµé¹
ElseIf Val(txtPort(0).Text) > Val(txtPort(1).Text) Then
MsgBox "¡Ãسһé͹ËÁÒÂàÅ¢ Port ÊÔé¹ÊØ´ãËéÁÒ¡¡ÇèÒËÁÒÂàÅ¢ Port àÃÔèÁµé¹¡è͹´éÇÂ.", _
vbOKOnly + vbExclamation, "ÃÒ§ҹʶҹÐ"
txtPort(1).SetFocus
Exit Sub
End If
' à¤ÅÕÂÃì¢éÍÁÙÅ Status Bar Panel áá
sbMain.Panels(1).Text = ""
' à¤ÅÕÂÃì¤èÒ TextBox 㹡ÒÃáÊ´§¼ÅËÁÒÂàÅ¢ Port
txtScanResult.Text = ""
' à¤ÅÕÂÃì¤èÒ¡ÒùѺ¨Ó¹Ç¹ Port
CountPort = 0
' ¡Ó˹´ªèǧàÇÅÒ㹡Òà Scan ËÒ Port ÁÕ˹èÇÂà»ç¹ÁÔÅÅÔÇÔ¹Ò·Õ â´Â 1000 ms = 1 ÇÔ¹Ò·Õ
' ºÒ§¤ÃÑé§¡çÍÒ¨¨Ðµéͧ¡Ó˹´ãËéãªéàÇÅÒ¹Ò¹ à¾ÃÒÐÁѹ¢Ö鹡ѺÊÒÂáÅÐÃÐÂзҧ ËÃ×ÍÍ×è¹æ ´éǹèФÃѺ
Timer1.Interval = 100
cmdScan.Enabled = False
cmdStop.Enabled = True
' à¡çº¤èÒ IP Address äÇéã¹µÑÇá»Ã à¾×èͤÇÒÁÊдǡ㹡ÒÃàÃÕ¡ãªé§Ò¹
strIP = txtStartIP(0).Text & "." & txtStartIP(1).Text & "." & txtStartIP(2).Text & "." & txtStartIP(3).Text
' á¨é§ËÁÒÂàÅ¢ Port ·Õè¡ÓÅѧ Scan Port
txtScanResult.Text = txtScanResult.Text & "µÃǨÊͺËÁÒÂàÅ¢ Port ¢Í§ IP Address: " & strIP & vbCrLf
' ¡Ó˹´ËÁÒÂàÅ¢ Port àÃÔèÁµé¹ãËé¡ÑºµÑÇá»Ã à¾ÃÒФèÒ¹Õéµéͧà¾ÔèÁ¤èÒ¢Öé¹·ÕÅÐ 1 ¨¹¡ÇèҨФú
PortToScan = txtPort(0).Text
' ¢³Ð¹Õé¡ÓÅѧ·Ó¡Òà Scan àÁ×èÍäáçµÒÁ·Õè¤èÒ¹ÕéÁÕ¤èÒà»ç¹ False ¡ç¨ÐËÂØ´¡Ò÷ӧҹŧ·Ñ¹·Õ
blnScan = True
' ¡ÃеØé¹¹ÒÌÔ¡ÒãËé·Ó§Ò¹µèÍä»
Timer1.Enabled = True
ExitProc:
Exit Sub
ErrorHandler:
' ¢³Ðâ»Ãá¡ÃÁ¡ÓÅѧ·Ó§Ò¹ (Run Time) ´Ñ¡ Error ¨Ò¡ On Error GoTo ErrorHandler
If Err.Number <> 0 Then MsgBox "Error: " & Err.Number & vbCrLf & Err.Description
Resume ExitProc
End Sub
' ###################################################
' â»Ãá¡ÃÁÂèÍÂ㹡Òà Scan ËÒ Port µÒÁªèǧ·Õè¡Ó˹´àÍÒäÇé
' ###################################################
Private Sub ScanPort
On Error GoTo ErrorHandler
' à§×è͹ä¢ãËé Scan Port àÃÔèÁ¨Ò¡ Port àÃÔèÁµé¹·Õè¡Ó˹´ áÅÐ ¹Ñº¢Öé¹·ÕÅÐ 1 ä»àÃ×èÍÂæ¨¹¡ÇèҨФú
' áÅÐ ÂѧäÁèÁÕ¡Òá´»ØèÁ cmdStop ãËéËÂØ´¡Ò÷ӧҹ
If PortToScan <= Val(txtPort(1).Text) And blnScan = True Then
' ãËé CPU ä»·Ó§Ò¹ÍÂèÒ§Í×è¹ä´éàÅ (¤×¹ CPU ¡ÅѺä»ãËé¡ÑºÃкº»¯ÔºÑµÔ¡Òà - OS)
DoEvents
' ËÒ¡ Winsock ÂѧÁÕ¡Òà Connect ¡Ñº IP ã´æÍÂÙè µéͧÊÑè§ãËé Disconnect Í͡仡è͹
If wsIP.State <> sckClosed Then wsIP.Close
' ###################################################
' ÊèǹÊӤѷÕè¡Ó˹´¤èÒà¾×èÍ·Ó¡Ò÷´Êͺ
' ¡Ó˹´ IP Address ãËé¡Ñº Winsock
wsIP.RemoteHost = strIP
' ¡Ó˹´ËÁÒÂàÅ¢ Port 㹡ÒõԴµè͡Ѻ Remote IP
wsIP.RemotePort = PortToScan
' Winsock µÔ´µèÍËÁÒÂàÅ¢ IP Address áÅÐ ËÁÒÂàÅ¢ Port µÒÁ·Õè¡Ó˹´
' ËÇ¡ÊÒÁÒöµÔ´µèÍ IP Address áÅÐ Port ·Õè¡Ó˹´ä´é ¡ç¨Ð¡ÃÐâ´´ä»à˵ءÒóì wsIP_Connect()
' ¨Ò¡¹Ñé¹àÃÒ¡çãËéÁѹáÊ´§¼ÅµÒÁËÁÒÂàÅ¢ Port ·Õè Connect ÍÍ¡ÁÒÂѧä§ÅèФÃѺ
' ¨ÐàË繡Ò÷ӧҹã¹Êèǹ¹Õéä´é ¤Ø³µéͧ·Ó¡Òà Debug ´Ù´éǹèФÃѺ ...
wsIP.Connect
' ###################################################
' à¾ÔèÁ¤èÒ Port 㹡Òà Scan ¢Öé¹ÍÕ¡ 1
PortToScan = PortToScan + 1
' Scan ËÒ Port ¤ÃºáÅéÇ ËÃ×Í ÊÑè§ãËéËÂØ´¡Òà Scan
Else
cmdScan.Enabled = True
cmdStop.Enabled = False
' ÊÑè§ãËé Timer1 ËÂØ´¡Ò÷ӧҹ´éÇÂ
Timer1.Enabled = False
' ÃÒ§ҹ¼Å¡Òà Scan Port ã¹ StatusBar
If PortToScan <= Val(txtPort(1).Text) Then
sbMain.Panels(1).Text = "ËÂØ´¡Ò÷ӧҹ·Õè Port: " & PortToScan
' ¡Ó˹´¤èÒ Port àÃÔèÁµé¹ãËÁè à¾×èͨÐä´é·Ó¡Òà Scan µèÍä»ä´éàÅÂ
txtPort(0).Text = PortToScan
' ¡Ã³Õ Scan Port àÊÃç¨ÊÁºÙóìËÁ´áÅéÇ
Else
sbMain.Panels(1).Text = "¡Ò÷ӧҹàÊÃç¨ÊÁºÙóì - " & CountPort & " Port"
MsgBox "Scan ËÒ Port ¢Í§ËÁÒÂàÅ¢ IP Address " & strIP & " ä´é " & CountPort & " Port"
End If
End If
ExitProc:
Exit Sub
ErrorHandler:
' ¢³Ðâ»Ãá¡ÃÁ¡ÓÅѧ·Ó§Ò¹ (Run Time) ´Ñ¡ Error ¨Ò¡ On Error GoTo ErrorHandler
If Err.Number <> 0 Then MsgBox "Error: " & Err.Number & vbCrLf & Err.Description
Resume ExitProc
End Sub
' ###################################################
' µÃҺ㴷Õè Timer1.Enabled = True Áѹ¡ç¨Ðà¢éÒÁÒ·Ó§Ò¹·Õè¹Õè µÒÁ¤èÒ Interval ·ÕèµÑé§àÍÒäÇé
' ###################################################
Private Sub Timer1_Timer()
' ËÒ¡ Timer1 ÁÕ¤èÒ Enabled ¡ç¨ÐÊÑè§ãËéä»·Ó§Ò¹·Õèâ»Ãá¡ÃÁÂèÍ ScanPort µÒÁàÇÅÒ·Õè¡Ó˹´
sbMain.Panels(1).Text = "¡ÓÅѧ»ÃÐÁÇżŠIP: " & strIP & "." & IPStartScan
' ä» Scan ËÒ Port ËÃ×Í
' µÃǨÊͺ¡Òà Connect IP Address/Port ¡Ñº Winsock Control ¹Ñè¹áËÅФÃѺ
Call ScanPort
End Sub
' ###################################################
' ¡Ã³Õ·Õè Winsock ÊÒÁÒö Connect ´éǤÓÊÑè§ wsIP.Connect
' ËÒ¡ÁÕ¡Òà Connect ¡Ñº IP ·Õè·´ÊͺÍÂÙèãËé·Ó¡ÒÃá¨é§¼Åã¹ TextBox
Private Sub wsIP_Connect()
' ###################################################
On Error GoTo ErrorHandler
' áÊ´§¼ÅËÁÒÂàÅ¢ Port ã¹ TextBox
txtScanResult.Text = txtScanResult.Text & "Port : " & wsIP.RemotePort & vbCrLf
' ¹Ñº¨Ó¹Ç¹ Port ·ÕèµÃǨ¾º
CountPort = CountPort + 1
ExitProc:
Exit Sub
ErrorHandler:
' ¢³Ðâ»Ãá¡ÃÁ¡ÓÅѧ·Ó§Ò¹ (Run Time) ´Ñ¡ Error ¨Ò¡ On Error GoTo ErrorHandler
If Err.Number <> 0 Then MsgBox "Error: " & Err.Number & vbCrLf & Err.Description
Resume ExitProc
End Sub
Private Sub cmdExit_Click()
Set frmPortScan = Nothing
End
End Sub
|
Conclusion: ¢éͤԴàËç¹ã¹¡ÒþѲ¹ÒµèÍä» .... ¨Ò¡â¤é´¹Õé ¼ÁäÁèä´é¨Ñ´à¡çºà»ç¹ Logging File àÍÒäÇéãËé áµè¤Ø³¡çÊÒÁÒöËÒ´ÙµÑÇÍÂèÒ§¡Òà Save à»ç¹ Text File ä´é·Ñ駨ҡàÇçºä«µì¢Í§¼Á ËÃ×Í ·ÕèÍ×è¹æ¡çÁÕà¾Õº¤ÃѺ ... ÍÕ¡·Ñé§¼ÁäÁèä´éà¢Õ¹â¤é´µÃǨÊͺÇèÒÁѹÁÕ¡ÒÃàª×èÍÁµèÍ (Connect) ¡Ñºà¤Ã×èͧ»ÅÒ·ҧÍÂÙèËÃ×ÍäÁè´éǹèФÃѺ ¡çÅͧ»ÃѺ Åͧá¡éä¢à¾ÔèÁàµÔÁ´Ù à¾×èÍà»ç¹¡ÒþѲ¹ÒµèÍ-ÂÍ´ÍÍ¡ä»ä´éÍÕ¡¤ÃѺ ... ¾Õè¹éͧ
|