For each ip try a list of urls - vb.net

Now i have:
Dim i As Integer
Dim web As New WebClient With {.Proxy = Nothing}
'http://1.2.3.4/sql.db
Dim attkstring As String = "/sql.db"
i = 0
Dim shellx As Integer = 0
Dim sUrl As String = shells.Items(shellx) & attkstring
For Each item In shells.Items
Try
If web.OpenRead(sUrl) = True Then
End If
Catch ex As Exception
End Try
shellsloadedtext.Items.Add(sUrl)
shellx += 1
Next
But in my ListBox write all (ip+url), I need to write the IP + the URL just in case work, and now writes them even if there are no
Ex: real ip: 7.7.7.7 false ip: 1.1.1.1
I write in the ip list 7.7.7.7 1.1.1.1
And my ListBox shellsloadedtext wirte 7.7.7.7/sql.db and 1.1.1.1/sql.db
Help me

Does this help?
Dim sUrl As String = ips.Items(urlchk) & urlstring
web.DownloadString(sUrl)
yourListBox.Items.Add(sUrl)
Reference:
HTTP GET with .NET WebClient

Related

vb.net user input into url

I am currently making a VB.net console application that calls upon a web based API to get results back into the console.
What I would like to do is allow the user to input the IP themselves.
Dim sURL As String
sURL = "http://api.hackertarget.com/geoip/?q=1.1.1.1"
I would like to be able to replace the 1.1.1.1 with a user input
Thank you
EDIT:
When I run the program I need to insert the IP twice into the console
Dim nL As String = Environment.NewLine
Console.Write("Please enter an IP Address: ")
Dim input = Console.ReadLine()
This is my code I use to take the user input
EDIT2:
Full Code
Imports System
Imports System.Net
Imports System.IO
Module Module1
Sub Main()
IP:
Dim nL As String = Environment.NewLine
Console.Write("Please enter an IP Address: ")
'Console.WriteLine()
Dim input = Console.ReadLine()
Dim sURL As String
sURL = "http://api.hackertarget.com/geoip/?q=1.1.1.1".Replace("1.1.1.1", Console.ReadLine())
Dim wrGETURL As WebRequest
wrGETURL = WebRequest.Create(sURL)
Dim myProxy As New WebProxy("myproxy", 80)
myProxy.BypassProxyOnLocal = True
Dim objStream As Stream
objStream = wrGETURL.GetResponse.GetResponseStream()
Dim objReader As New StreamReader(objStream)
Dim sLine As String = ""
Dim i As Integer = 0
Do While Not sLine Is Nothing
i += 1
sLine = objReader.ReadLine
If Not sLine Is Nothing Then
Console.WriteLine("{0}:{1}", i, sLine)
End If
Loop
Console.ReadLine()
GoTo IP
End Sub
End Module
You should use -
Dim sURL As String
Console.Write("Please enter an IP Address: ")
sURL = "http://api.hackertarget.com/geoip/?q=1.1.1.1".Replace("1.1.1.1", Console.ReadLine())

Setting Static IP Address VB.net

I am writing a script for setting static ip to computers. it reads a file that has mac addr - ip addr pair. based on the computers mac address it gets its ip address from the file. I have problem setting this up. I have never done any kind of .net programming. I wrote a bashscript for linux side which works, but for windows I don't have any experience. I wrote the program in vb.net. Until now the program can get the data from the file, now I have to set static ip based on the mac address and also hostname. there were several different posts 1, 2, but they were all in c# ,and have problem converting them to VB.Net. It would be great if someone could provide a pointer on how to Set Static IP address for a specific NIC on local computer.
Imports System
Imports System.Text.RegularExpressions
Imports System.Net.NetworkInformation
Imports System.IO
Imports System.Management
Module Module1
Const FAILURE = 1
Const SUCCESS = 0
Dim phyAddr As String = getMAC()
Sub Main()
Dim arguments(3) As String
Dim fileName As String = ""
If Environment.GetCommandLineArgs.Count = 3 Then
arguments = Environment.GetCommandLineArgs
fileName = arguments(2)
Else
Console.WriteLine("Wrong Syntax!")
help()
Console.Read()
close(FAILURE)
End If
If validName(fileName) Then
If fileExists(fileName) Then
'search file for ip
Dim confData As String = searchFile(phyAddr, fileName)
If Not String.IsNullOrEmpty(confData) Then
Dim netConf() As String = splitLine(confData)
Dim hostName As String = netConf(1)
Dim ipAddr As String = netConf(2)
Dim netMask As String = netConf(3)
Dim gateway As String = netConf(4)
Dim dns1 As String = netConf(5)
Dim dns2 As String = netConf(6)
Else
Console.WriteLine("Couldn't find MAC {0} in file {1}", phyAddr, fileName)
Console.Read()
close(FAILURE)
End If
Else
Console.WriteLine("File {0} doesn't exist", fileName)
Console.WriteLine("Please provide an absolute path to file")
Console.Read()
close(FAILURE)
End If
Else
Console.WriteLine("File name {0} not recognized", fileName)
Console.Read()
close(FAILURE)
End If
End Sub
Private Sub help()
Console.WriteLine("Please call program as: ")
Console.WriteLine("networkconfiguration -f datafile")
End Sub
Private Sub close(exitCode As Integer)
Environment.Exit(exitCode)
End Sub
Private Function validName(name As String) As Boolean
Static fileNameExpression As New Regex("^[\\:_a-zA-Z0-9.]+")
Return fileNameExpression.IsMatch(name)
End Function
Private Function fileExists(name As String) As Boolean
Return My.Computer.FileSystem.FileExists(name)
End Function
Private Function getMAC() As String
Dim nic As NetworkInterface
Dim result As String = String.Empty
For Each nic In NetworkInterface.GetAllNetworkInterfaces()
If nic.Name.Contains("Ethernet0") Then
result = nic.GetPhysicalAddress.ToString
Exit For
End If
Next
Return result
End Function
Private Function searchFile(keyword As String, fileName As String) As String
'store result
Dim result As String = String.Empty
'search for keyword in returned data
Using reader As New StreamReader(fileName)
While Not reader.EndOfStream
Dim line As String = reader.ReadLine
If line.Contains(keyword) Then
result = line
Exit While
End If
End While
End Using
Return result
End Function
Private Function splitLine(line As String) As String()
Dim separator As Char = ";"
Return line.Split(separator)
End Function
Private Function setupNetwork(ipAddr As String, netmask As String, gateway As String, dns1 As String, dns2 As String) As Boolean
Dim mc As New ManagementClass("Win32_NetworkAdapterConfiguration")
Dim moc As New ManagementObjectCollection
Dim mo As ManagementObject
moc = mc.GetInstances()
For Each mo In moc
'make sure this is ipenabled device
'not something like memory card or VMWare
Next
End Function
End Module
Ok solved it. I will just post my answer here so others might benefit.
' set the network configuration of a computer
Function setupNetwork(phyAddr As String, ipAddr As String, netmask As String, gateway As String, dns1 As String, dns2 As String) As Boolean
Dim result As Boolean = False
' concatenate two dns addresses into one
Dim dnsSearchOrder As String = dns1 + "," + dns2
Dim objMC As ManagementClass = New ManagementClass("Win32_NetworkAdapterConfiguration")
Dim objMOC As ManagementObjectCollection = objMC.GetInstances()
For Each objMO As ManagementObject In objMOC
If (CBool(objMO("IPEnabled"))) Then
' remove colons from mac address so that it could match the
' provided mac address
Dim origMAC As String = objMO("MacAddress").ToString()
Dim pattern As String = ":"
Dim replacement As String = ""
Dim rgx As New Regex(pattern)
' the mac address with colons removed from it
Dim repMAC As String = rgx.Replace(origMAC, replacement)
If (String.Equals(phyAddr, repMAC)) Then
Try
Dim objNewIP As ManagementBaseObject = Nothing
Dim objNewGate As ManagementBaseObject = Nothing
Dim objNewDNS As ManagementBaseObject = Nothing
Dim objSetIP As ManagementBaseObject = Nothing
objNewIP = objMO.GetMethodParameters("EnableStatic")
objNewGate = objMO.GetMethodParameters("SetGateways")
objNewDNS = objMO.GetMethodParameters("SetDNSServerSearchOrder")
'set defaultgateway
objNewGate("DefaultIPGateway") = New String() {gateway}
objNewGate("GatewayCostMetric") = New Integer() {1}
'set ipaddress and subnetmask
objNewIP("IPAddress") = New String() {ipAddr}
objNewIP("SubnetMask") = New String() {netmask}
objNewDNS("DNSServerSearchOrder") = dnsSearchOrder.Split(",")
objSetIP = objMO.InvokeMethod("EnableStatic", objNewIP, Nothing)
objSetIP = objMO.InvokeMethod("SetGateways", objNewGate, Nothing)
objSetIP = objMO.InvokeMethod("SetDNSServerSearchOrder", objNewDNS, Nothing)
result = True
Exit For
Catch ex As Exception
Console.WriteLine("Couldn't Set IP Address!")
Console.Read()
close(FAILURE)
End Try
End If
End If
Next
Return result
End Function
'set computers host name
Private Function setHostname(hostname As String) As Boolean
Dim result As Boolean = False
Dim path As New ManagementPath
path.Server = System.Net.Dns.GetHostName
path.NamespacePath = "root\CIMV2"
path.RelativePath = "Win32_Computersystem.Name='" & path.Server & "'"
Dim objMO As New ManagementObject(path)
Dim params() As Object = {hostname}
objMO.InvokeMethod("Rename", params)
result = True
Return result
End Function

Get Requested URL

I have been trying to read any requested URLs to my localhost. I think the simplest way to do this is to use the TCPListener. Below is what I've built so far but I'm not sure how I can read the URL requested as a string. I actually want to take the first incoming URL, parse out the data I need then shut the TCPlistener down. Any idea how I can get the URL?
Dim TClient As New TcpListener(Net.IPAddress.Parse("127.0.0.1"), 80)
TClient.Start()
Dim gotIt As Boolean = False
Do While gotIt = False
Dim x = TClient.AcceptTcpClient()
Console.WriteLine(x)
TClient.Stop()
Loop
Using an example from the MSDN I was able to come up with this:
Dim server As TcpListener = Nothing
Dim port As Int32 = 80
Dim localAddr As IPAddress = IPAddress.Parse("127.0.0.1")
server = New TcpListener(localAddr, port)
server.Start()
Dim bytes(1024) As Byte
Dim data As String = Nothing
Dim client As TcpClient = server.AcceptTcpClient
data = Nothing
Dim stream As NetworkStream = client.GetStream
Dim i As Int32
i = stream.Read(bytes, 0, bytes.Length)
data = System.Text.Encoding.ASCII.GetString(bytes, 0, i)
client.Close()
server.Stop()
The data variable contains the information I am looking for, just have to parse it out.
Thank you, #CoderDennis
What you're looking for is the Referer header.
String requestedUrl = request.getHeader("Referer");
Mind that Referer is case sensitive.
100% working!

Check If IP and URLs form list Exist

Now i have:
Dim i As Integer
Dim web As New WebClient With {.Proxy = Nothing}
'http://1.2.3.4/sql.db
Dim attkstring As String = "/sql.db"
i = 0
Dim shellx As Integer = 0
Dim sUrl As String = shells.Items(shellx) & attkstring
For Each item In shells.Items
Try
If web.OpenRead(sUrl) = True Then
End If
Catch ex As Exception
End Try
shellsloadedtext.Items.Add(sUrl)
shellx += 1
Next
But in my ListBox write all (ip+url), I need to write the IP + the URL just in case work, and now writes them even if there are no
Ex: real ip: 7.7.7.7 false ip: 1.1.1.1
I write in the ip list 7.7.7.7 1.1.1.1
And my ListBox shellsloadedtext wirte 7.7.7.7/sql.db and 1.1.1.1/sql.db
Help me
Try this:
Imports System.Net
Function UrlExists(destination As String) As Boolean
Dim url As New Uri(destination)
Dim request As WebRequest = WebRequest.Create(url)
Try
Using response As WebResponse = request.GetResponse
Return True
End Using
Catch ex As Exception
Return False
End Try
End Function

VB.NET IP disconnector: what is the correct usage of SetTcpEntry to disconnect

I am trying to create an IP disconnector. This is part from a template that I took that creates a TCPtable. I was trying to add a disconnecting function. However, it does not disconnect.
Dim liste() = {"76.9.24.130" ... ... ...}
Dim pdwSize As Integer
Dim iRetVal As Integer
Dim i As Integer
Dim TcpTableRow As MIB_TCPROW
Dim pStructPointer As IntPtr = IntPtr.Zero
Dim iNumberOfStructures As Integer
ListView1.Items.Clear()
iRetVal = GetTcpTable(pStructPointer, pdwSize, 0)
pStructPointer = Marshal.AllocHGlobal(pdwSize)
iRetVal = GetTcpTable(pStructPointer, pdwSize, 0)
iNumberOfStructures = Math.Ceiling((pdwSize - 4) / Marshal.SizeOf(GetType(MIB_TCPROW)))
For i = 0 To iNumberOfStructures - 1
Dim pStructPointerTemp As IntPtr = New IntPtr(pStructPointer.ToInt32() + 4 + (i * Marshal.SizeOf(GetType(MIB_TCPROW))))
TcpTableRow = New MIB_TCPROW()
With TcpTableRow
.dwLocalAddr = 0
.dwState = 0
.dwLocalPort = 0
.dwRemoteAddr = 0
.dwRemotePort = 0
End With
'Marshal.PtrToStructure(pStructPointerTemp, TcpTableRow)
TcpTableRow = CType(Marshal.PtrToStructure(pStructPointerTemp, GetType(MIB_TCPROW)), MIB_TCPROW)
' Process each MIB_TCPROW here
'If Not ((Check1.CheckState = System.Windows.Forms.CheckState.Checked) And (GetIpFromLong(TcpTableRow.dwLocalAddr) = "0.0.0.0" Or GetIpFromLong(TcpTableRow.dwLocalAddr) = "127.0.0.1")) Then
If Not GetIpFromLong(TcpTableRow.dwRemoteAddr) = "127.0.0.1" And Not GetIpFromLong(TcpTableRow.dwRemoteAddr) = "0.0.0.0" Then
'Add the data to the ListView control
With TcpTableRow
Dim itemAdd As ListViewItem
itemAdd = ListView1.Items.Add(GetIpFromLong(.dwLocalAddr))
itemAdd.SubItems.Add(CStr(GetTcpPortNumber(.dwLocalPort)))
itemAdd.SubItems.Add(GetIpFromLong(.dwRemoteAddr))
itemAdd.SubItems.Add(CStr(GetTcpPortNumber(.dwRemotePort)))
itemAdd.SubItems.Add(GetState(.dwState))
End With
'-------------- Kill Connection--------------
If Array.IndexOf(liste, GetIpFromLong(TcpTableRow.dwRemoteAddr)) >= 0 Then
TcpTableRow.dwState = 12
SetTcpEntry(TcpTableRow)
End If
End If
Next
I could not solve it but found an alternative solution using CurrPorts
Shell(Application.StartupPath & "\cports /close * * " & GetIpFromLong(TcpTableRow.dwRemoteAddr) & " " & GetTcpPortNumber(TcpTableRow.dwRemotePort))
I am not sure if this is the same situation or not but I was using:
session = New Socket(,,,) as my means of connecting via TCP PORT23 and my issue was that I too could not get the connection to close for some reason. I did try the CurrPorts workaround above but I found that did not meet my expectations. Instead I am using TCPClient.
Dim TCPConnection as TCPClient 'Init TCPConnect
Private Sub Connect(Byval inIP)
Dim PiP = IPAddress.Parse(inIP)
Dim iplocal As New System.Net.IPEndPoint(PiP, 23)
Try
TCPsession = New TcpClient
TCPsession.Client.Connect(ipLocal)
Catch
'On Error Do Nothing
End Try
End Sub
Private Sub Disconnect()
TCPsession.Client.Close()
End Sub
This code solved my issue but I am not sure if thats what you where even talking about.