2016-08-05 9 views
0

저는 클러킹 시스템 회사에서 근무하며 라우터 및 기타 도구를 사용하여 네트워크에서 무언가를 찾을 수없는 경우가 있습니다.스캔 중 포트 9922에서 실행중인 항목에 대한 내부 IP 범위 VBNet

그래서 오류가 발생했습니다. TCP 9922 포트에서 내부 네트워크를 검사 할 수 있어야합니다.

Imports System.Net.Sockets 
Imports System.Net 
Imports System.Threading 
Imports System.Text 
Module Module1 
    Dim portStart As Integer 
    Dim portEnd As Integer 
    Dim lngPort As Long 
    Dim lngRange As Long 
    Dim txtHost1 As String 
    Dim txtHost2 As String 
    Dim txtHost As String 
    Dim openPorts As Integer 
    Dim closedPorts As Integer 
    Dim range As String 
    Dim lgnRange2 As Long 
    Sub Main() 
     Console.Write("Range Start: (For example 192.168.1.1 = 192.168.1. ") 
     range = Console.ReadLine() 

     Console.Write("Host to: Example 1 ") 
     txtHost1 = Console.ReadLine() 

     Console.Write("Host from: Example 254 ") 
     txtHost2 = Console.ReadLine() 

     Console.Write("Port: (9922 for Face Rec By default)") 
     portEnd = Console.ReadLine() 
     For lngRange = txtHost1 To txtHost2 

     Next 
     For lgnRange2 = range + lngRange 
      Dim myTcpClient As New TcpClient() 
      Try 
       myTcpClient.Connect(lngPort, portEnd) 
       Console.WriteLine("Host: " + txtHost + " : ") 
       Console.WriteLine(" Port " + lngPort.ToString() + " : Open :") 
       openPorts += 1 
       myTcpClient.Close() 
      Catch ex As SocketException 
       Console.WriteLine("Host: " + txtHost + " : ") 
       Console.WriteLine(" Port " + lngPort.ToString() + " : Closed :") 
       ' Console.WriteLine(ex.Message) 
       closedPorts += 1 
       Console.Write(" " & openPorts.ToString & " open port(s) : ") 
       Console.Write("  " & closedPorts.ToString & " closed port(s) : ") 

       Console.Beep() 
       Console.Write(txtHost + " : " + portStart.ToString + " - " + portEnd.ToString + " : Scanned Sucessfully") 

      End Try 
     Next 
    End Sub 
    Public Class psAPP 
     Public Shared Sub Main() 

     End Sub 
    End Class 
End Module 
+0

"작성했지만 오류가 발생했습니다"보다 자세한 내용을 제공해야합니다. 어떤 줄의 오류입니까? 런타임 또는 컴파일 오류? 팁을 더 보려면 [ask]를 검토하십시오. – Mark

+0

이 줄은 'For lgnRange2 = range + lngRange' 유효하지 않습니다. – Mark

+0

늦은 응답에 대한 죄송합니다. 오류가 발생하는 곳은 –

답변

0

For 루프는 숫자 시작과 끝을 필요, 그래서 당신은 정수로 txtHost1txtHost2 변수를 변환해야합니다. TcpClient.Connect 호출에는 IPAddress 또는 하드 코딩 된 접두사와 현재 호스트 번호로 작성된 호스트 이름이 필요합니다. 따라서 루프는 (테스트되지 않은) 다음과 같이 보일 수 있습니다.

Option Strict On 
Option Infer On 
'... 
For i = Integer.Parse(txtHost1) To Integer.Parse(txtHost2) 
    Dim remoteAddr = IPAddress.Parse("192.168.1." & i) 
    Try 
     Using myTcpClient = New TcpClient() 
      myTcpClient.Connect(remoteAddr, Integer.Parse(portEnd)) 
     End Using 
     Console.WriteLine("Host: " + txtHost + " : ") 
     Console.WriteLine(" Port " + lngPort.ToString() + " : Open :") 
     openPorts += 1 
    Catch ex As SocketException 
     Console.WriteLine("Host: " + txtHost + " : ") 
     Console.WriteLine(" Port " + lngPort.ToString() + " : Closed :") 
     closedPorts += 1 
    End Try 
Next 
Console.Write(" " & openPorts.ToString & " open port(s) : ") 
Console.Write("  " & closedPorts.ToString & " closed port(s) : ")