Start 2
This commit is contained in:
622
Dokumentation/Classes/Class1.vb
Normal file
622
Dokumentation/Classes/Class1.vb
Normal file
@@ -0,0 +1,622 @@
|
||||
Imports System.Data.SqlClient
|
||||
|
||||
Public Class Class1
|
||||
|
||||
Public sAppPath As String = Application.StartupPath
|
||||
'Public Shared DBConString As String = "Server=NBMIESENBECK\SPIELWIESE;Initial Catalog=Doku;User ID=sa;Password=verag#3;Connection Timeout=5;"
|
||||
Public Shared DBConString As String
|
||||
Public Shared DBConstringDev As String = "Server=DEVELOPER.verag.ost.dmn\DEVSQL;Initial Catalog=Doku;User ID=sa;Password=BmWr501956;Connection Timeout=5;"
|
||||
Public Shared DBADMINBuchhaltung As String = "Data Source=192.168.0.94\SQLEXPRESS;Initial Catalog=ADMIN;Integrated Security=false;User ID=sa;Password=BmWr501956;"
|
||||
'Public Shared FilePath As String = "\\192.168.0.253\backup\temp_Sebastian\Spielwiese\Doku"
|
||||
Public Shared FilePath As String ' = "\\192.168.0.90\f\EDV-Wartung\Dokumentation"
|
||||
Public Shared Absender As String = "Absender Standard"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Public Shared Function SQLnQ(command As String)
|
||||
|
||||
Dim con As New SqlConnection
|
||||
Dim cmd As New SqlCommand
|
||||
|
||||
con.ConnectionString = DBConString
|
||||
Try
|
||||
con.Open()
|
||||
cmd.Connection = con
|
||||
cmd.CommandText = command
|
||||
cmd.ExecuteNonQuery()
|
||||
con.Close()
|
||||
Catch ex As Exception
|
||||
MessageBox.Show(ex.Message)
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Public Shared Function dbload()
|
||||
|
||||
Dim con As New SqlConnection
|
||||
Dim cmd As New SqlCommand
|
||||
|
||||
|
||||
con.ConnectionString = DBConString
|
||||
cmd.Connection = con
|
||||
End Function
|
||||
|
||||
Public Shared Function csvexport(quelldgv As DataGridView)
|
||||
Dim savefiledialog As New SaveFileDialog
|
||||
Dim firstin As String
|
||||
Dim out As String
|
||||
Dim in2 As String
|
||||
Dim header As String
|
||||
|
||||
savefiledialog.Filter = "CSV files (*.csv)|*.CSV"
|
||||
savefiledialog.InitialDirectory = "C:\Verag"
|
||||
savefiledialog.ShowDialog()
|
||||
|
||||
|
||||
Try
|
||||
For r As Integer = 0 To quelldgv.Rows.Count - 1
|
||||
For c As Integer = 0 To quelldgv.Columns.Count
|
||||
'test &= r & c & vbCrLf
|
||||
Try
|
||||
'test &= Replace(quelldgv.Rows(r).Cells(c).Value.ToString, vbCrLf, "vbCrlLf")
|
||||
firstin = quelldgv.Rows(r).Cells(c).Value.ToString
|
||||
'in2 = """" & firstin & """" & ";"
|
||||
in2 = firstin & ";"
|
||||
out &= Replace(in2, vbCrLf, "##vbCrLf##")
|
||||
Catch ex As Exception
|
||||
out &= ""
|
||||
End Try
|
||||
|
||||
Next
|
||||
|
||||
out &= "nZ"
|
||||
Next
|
||||
For c As Integer = 0 To quelldgv.Columns.Count - 1
|
||||
header &= quelldgv.Columns(c).Name & ";"
|
||||
Next
|
||||
out = Replace(out, "nZ", vbCrLf)
|
||||
'MsgBox(out)
|
||||
Using sw As New IO.StreamWriter(savefiledialog.FileName)
|
||||
sw.WriteLine(header)
|
||||
sw.WriteLine(out)
|
||||
End Using
|
||||
Catch ex As Exception
|
||||
MsgBox(ex.Message)
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Public Shared Function hochkomma(textin As String)
|
||||
Dim textout As String = textin.Replace("'", "''")
|
||||
Return (textout)
|
||||
End Function
|
||||
|
||||
Public Shared Function ip2netname(IP As String, ByRef NWStandort As String, ByRef netname As String)
|
||||
Dim con As New SqlConnection
|
||||
Dim cmd As New SqlCommand
|
||||
Dim reader As SqlDataReader
|
||||
Dim NWAddress As String
|
||||
Dim pointcounter As Integer = 0
|
||||
Dim digcounter As Integer = 0
|
||||
|
||||
con.ConnectionString = DBConString
|
||||
cmd.Connection = con
|
||||
|
||||
For Each c As Char In IP
|
||||
If c = "." Then
|
||||
pointcounter = pointcounter + 1
|
||||
End If
|
||||
digcounter = digcounter + 1
|
||||
Next
|
||||
|
||||
If pointcounter < 3 Or digcounter < 7 Then
|
||||
MsgBox("Das scheint keine gültige IP Adresse zu sein...")
|
||||
Exit Function
|
||||
End If
|
||||
|
||||
NWAddress = IP.Substring(0, IP.LastIndexOf(".")) & "."
|
||||
|
||||
con.Open()
|
||||
cmd.CommandText = "SELECT * FROM Tbl_Netzwerke WHERE NWAddress = '" & NWAddress & "' "
|
||||
cmd.ExecuteNonQuery()
|
||||
|
||||
reader = cmd.ExecuteReader()
|
||||
Do While reader.Read
|
||||
NWStandort = reader("NWStandort")
|
||||
netname = reader("Netname")
|
||||
Loop
|
||||
reader.Close()
|
||||
con.Close()
|
||||
End Function
|
||||
|
||||
Public Shared Function IPexist(IP As String)
|
||||
Dim con As New SqlConnection
|
||||
Dim cmd As New SqlCommand
|
||||
Dim reader As SqlDataReader
|
||||
con.ConnectionString = DBConString
|
||||
cmd.Connection = con
|
||||
|
||||
con.Open()
|
||||
cmd.CommandText = "SELECT * FROM Tbl_Netzwerkclients WHERE IPAdresse = '" & IP & "'"
|
||||
cmd.ExecuteNonQuery()
|
||||
reader = cmd.ExecuteReader()
|
||||
If reader.Read Then
|
||||
MsgBox("Die IP Adresse " & IP & " ist bereits belegt!")
|
||||
Return True
|
||||
con.Close()
|
||||
Exit Function
|
||||
End If
|
||||
Return False
|
||||
End Function
|
||||
|
||||
Public Shared Function IP2Host(IP As String)
|
||||
Dim pointcounter As Integer = 0
|
||||
Try
|
||||
Do
|
||||
If IP.StartsWith(".") Then
|
||||
pointcounter = pointcounter + 1
|
||||
End If
|
||||
IP = IP.Remove(0, 1)
|
||||
|
||||
Loop Until pointcounter = 3 'IP.First() = "."
|
||||
|
||||
Return IP
|
||||
Catch ex As Exception
|
||||
MsgBox(ex.Message)
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Public Shared Function netmaskseperator(nm As String, ByRef a As Integer, ByRef b As Integer, ByRef c As Integer, ByRef d As Integer, ByRef nwbits As Integer, ByRef hostbits As Integer)
|
||||
Dim bitstring As String
|
||||
Try
|
||||
Do
|
||||
a &= nm.Substring(0, 1)
|
||||
nm = nm.Remove(0, 1)
|
||||
Loop Until nm.First() = "."
|
||||
nm = nm.Remove(0, 1)
|
||||
Do
|
||||
b &= nm.Substring(0, 1)
|
||||
nm = nm.Remove(0, 1)
|
||||
Loop Until nm.First() = "."
|
||||
nm = nm.Remove(0, 1)
|
||||
Do
|
||||
c &= nm.Substring(0, 1)
|
||||
nm = nm.Remove(0, 1)
|
||||
Loop Until nm.First() = "."
|
||||
nm = nm.Remove(0, 1)
|
||||
Do
|
||||
d &= nm.Substring(0, 1)
|
||||
nm = nm.Remove(0, 1)
|
||||
Loop Until nm.Length = 0
|
||||
|
||||
Catch ex As Exception
|
||||
MsgBox("netmaskseperator: " & ex.Message)
|
||||
End Try
|
||||
Dim ai As Integer = Convert.ToString(a, 2)
|
||||
Dim bi As Integer = Convert.ToString(b, 2)
|
||||
Dim ci As Integer = Convert.ToString(c, 2)
|
||||
Dim di As Integer = Convert.ToString(d, 2)
|
||||
|
||||
bitstring = ai & bi & ci & di
|
||||
nwbits = 0
|
||||
hostbits = 32
|
||||
For Each ch As Char In bitstring
|
||||
If ch = "1" Then
|
||||
nwbits = nwbits + 1
|
||||
hostbits = hostbits - 1
|
||||
End If
|
||||
Next
|
||||
|
||||
End Function
|
||||
|
||||
Public Shared Function mask2nwbit(nm As String, ByRef nwbits As Integer)
|
||||
Dim bitstring As String
|
||||
Dim a, b, c, d, hostbits As Integer
|
||||
Try
|
||||
Do
|
||||
a &= nm.Substring(0, 1)
|
||||
nm = nm.Remove(0, 1)
|
||||
Loop Until nm.First() = "."
|
||||
nm = nm.Remove(0, 1)
|
||||
Do
|
||||
b &= nm.Substring(0, 1)
|
||||
nm = nm.Remove(0, 1)
|
||||
Loop Until nm.First() = "."
|
||||
nm = nm.Remove(0, 1)
|
||||
Do
|
||||
c &= nm.Substring(0, 1)
|
||||
nm = nm.Remove(0, 1)
|
||||
Loop Until nm.First() = "."
|
||||
nm = nm.Remove(0, 1)
|
||||
Do
|
||||
d &= nm.Substring(0, 1)
|
||||
nm = nm.Remove(0, 1)
|
||||
Loop Until nm.Length = 0
|
||||
|
||||
Catch ex As Exception
|
||||
MsgBox("netmaskseperator: " & ex.Message)
|
||||
End Try
|
||||
Dim ai As Integer = Convert.ToString(a, 2)
|
||||
Dim bi As Integer = Convert.ToString(b, 2)
|
||||
Dim ci As Integer = Convert.ToString(c, 2)
|
||||
Dim di As Integer = Convert.ToString(d, 2)
|
||||
|
||||
bitstring = ai & bi & ci & di
|
||||
nwbits = 0
|
||||
hostbits = 32
|
||||
For Each ch As Char In bitstring
|
||||
If ch = "1" Then
|
||||
nwbits = nwbits + 1
|
||||
hostbits = hostbits - 1
|
||||
End If
|
||||
Next
|
||||
|
||||
End Function
|
||||
|
||||
Public Shared Function bit2mask(bit As String, ByRef mask As String)
|
||||
Dim a, b, c, d As String
|
||||
|
||||
If bit \ 8 >= 1 Then
|
||||
a = "255"
|
||||
bit = bit - 8
|
||||
If bit \ 8 >= 1 Then
|
||||
b = "255"
|
||||
bit = bit - 8
|
||||
If bit \ 8 >= 1 Then
|
||||
c = "255"
|
||||
bit = bit - 8
|
||||
If bit \ 8 >= 1 Then
|
||||
d = "255"
|
||||
bit = bit - 8
|
||||
Else
|
||||
d = 256 - (2 ^ (8 - bit))
|
||||
End If
|
||||
Else
|
||||
c = 256 - (2 ^ (8 - bit))
|
||||
d = 0
|
||||
End If
|
||||
Else
|
||||
b = 256 - (2 ^ (8 - bit))
|
||||
c = 0
|
||||
d = 0
|
||||
End If
|
||||
Else
|
||||
a = 256 - (2 ^ (8 - bit))
|
||||
b = 0
|
||||
c = 0
|
||||
d = 0
|
||||
End If
|
||||
|
||||
mask = a & "." & b & "." & c & "." & d
|
||||
Return mask
|
||||
End Function
|
||||
|
||||
Private Shared Function checknull(text As String)
|
||||
Dim Reader As SqlDataReader
|
||||
Try
|
||||
' If reader.Read() Then
|
||||
If Reader.IsDBNull(0) Then
|
||||
'MsgBox("Null")
|
||||
Return String.Empty
|
||||
Else
|
||||
Return Reader(text).ToString
|
||||
End If
|
||||
'End If
|
||||
Catch ex As Exception
|
||||
'MsgBox("Checknull: " & ex.Message)
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Public Shared Function NWAddressGenerieren(NWAddress As String, ByRef IPShort As String)
|
||||
Try
|
||||
Do
|
||||
NWAddress = NWAddress.Remove(NWAddress.Length - 1)
|
||||
|
||||
Loop Until NWAddress.Last() = "."
|
||||
Catch ex As Exception
|
||||
MsgBox("Fehler beim Konvertieren der Netzwerkadresse.")
|
||||
End Try
|
||||
IPShort = NWAddress
|
||||
End Function
|
||||
|
||||
Public Shared Function Netzwerkfuellen(NWAdresse As String, NWBits As Integer, Netname As String, NWStandort As String)
|
||||
Dim con As New SqlConnection
|
||||
Dim cmd As New SqlCommand
|
||||
Dim reader As SqlDataReader
|
||||
con.ConnectionString = DBConString
|
||||
cmd.Connection = con
|
||||
Dim AnzahlHosts As Integer
|
||||
Dim Hostbits As Integer = 32 - NWBits
|
||||
AnzahlHosts = (2 ^ Hostbits) - 2
|
||||
Dim Starthost As Integer = IP2Host(NWAdresse) + 1
|
||||
Dim IPShort As String
|
||||
NWAddressGenerieren(NWAdresse, IPShort)
|
||||
' Dim NWStandort, NetName As String
|
||||
'ip2netname(NWAdresse, NWStandort, NetName)
|
||||
|
||||
For Host As Integer = Starthost To (Starthost + AnzahlHosts - 1)
|
||||
Dim IP As String = IPShort & Host
|
||||
con.Open()
|
||||
cmd.CommandText = "Select FQDN, Modell FROM Tbl_Netzwerkclients WHERE IPAdresse = '" & IP & "' "
|
||||
reader = cmd.ExecuteReader()
|
||||
Try
|
||||
reader.Read()
|
||||
reader.IsDBNull(0)
|
||||
'Label2.Text &= "Try" & IP & vbCrLf
|
||||
Catch
|
||||
'MsgBox("Catch")
|
||||
con.Close()
|
||||
con.Open()
|
||||
cmd.CommandText = "INSERT INTO Tbl_Netzwerkclients (IPAdresse, HOST, Netname, NWStandort, Linked, Netzwerk, LinkedWith) VALUES ('" & IP & "', '" & Host & "','" & Netname & "','" & NWStandort & "', '0', '" & NWAdresse & "', '')"
|
||||
cmd.ExecuteNonQuery()
|
||||
con.Close()
|
||||
'Label2.Text &= "Catch" & cmd.CommandText & IP & vbCrLf
|
||||
End Try
|
||||
con.Close()
|
||||
con.Open()
|
||||
cmd.CommandText = "UPDATE Tbl_Netzwerkclients SET NETZWERK='" & NWAdresse & "' WHERE NETNAME = '" & Netname & "' AND NWStandort = '" & NWStandort & "'"
|
||||
cmd.ExecuteNonQuery()
|
||||
con.Close()
|
||||
Next
|
||||
|
||||
End Function
|
||||
|
||||
Public Shared Function NetzwerkadresseInfo(Netzwerkadresse As String, ByRef Standort As String, ByRef Name As String, ByRef subnetmask As String)
|
||||
Dim con As New SqlConnection
|
||||
Dim cmd As New SqlCommand
|
||||
Dim reader As SqlDataReader
|
||||
con.ConnectionString = DBConString
|
||||
cmd.Connection = con
|
||||
|
||||
con.Open()
|
||||
cmd.CommandText = "SELECT * FROM Tbl_Netzwerke WHERE NETZWERK = '" & Netzwerkadresse & "'"
|
||||
reader = cmd.ExecuteReader()
|
||||
Do While reader.Read
|
||||
Standort = reader("NWSTANDORT")
|
||||
Name = reader("NETNAME")
|
||||
subnetmask = reader("Subnetz")
|
||||
Loop
|
||||
reader.Close()
|
||||
con.Close()
|
||||
End Function
|
||||
|
||||
Public Shared Function getDHCPstartend(Netzwerkadresse As String, ByRef DHCPStart As String, ByRef DHCPEnd As String)
|
||||
Dim con As New SqlConnection
|
||||
Dim cmd As New SqlCommand
|
||||
Dim reader As SqlDataReader
|
||||
con.ConnectionString = DBConString
|
||||
cmd.Connection = con
|
||||
|
||||
Try
|
||||
con.Open()
|
||||
cmd.CommandText = "SELECT * FROM Tbl_Netzwerke WHERE NETZWERK = '" & Netzwerkadresse & "'"
|
||||
reader = cmd.ExecuteReader()
|
||||
Do While reader.Read
|
||||
DHCPStart = reader("DHCPStart")
|
||||
DHCPEnd = reader("DHCPEnd")
|
||||
'subnetmask = reader("Subnetz")
|
||||
Loop
|
||||
reader.Close()
|
||||
con.Close()
|
||||
Catch
|
||||
DHCPStart = 0
|
||||
DHCPEnd = 0
|
||||
End Try
|
||||
|
||||
End Function
|
||||
|
||||
Public Shared Function DHCPFill(dhcpstart As String, dhcpend As String, nw As String)
|
||||
Dim con As New SqlConnection
|
||||
Dim cmd As New SqlCommand
|
||||
Dim reader As SqlDataReader
|
||||
con.ConnectionString = DBConString
|
||||
cmd.Connection = con
|
||||
|
||||
Try
|
||||
dhcpstart = Convert.ToInt32(dhcpstart)
|
||||
dhcpend = Convert.ToInt32(dhcpend)
|
||||
Catch ex As Exception
|
||||
dhcpstart = 0
|
||||
dhcpend = 0
|
||||
'LblInfo.Text = "DHCP nicht anwendbar"
|
||||
'Exit Function
|
||||
End Try
|
||||
If dhcpstart < 1 Or dhcpend > 254 Then
|
||||
'MsgBox("der DHCP Bereich kann nicht stimmen...")
|
||||
'Exit Function
|
||||
End If
|
||||
con.Open()
|
||||
cmd.CommandText = "select IPadresse, DHCP from TbL_Netzwerkclients Where NETNAME = (select NETNAME from TbL_Netzwerke Where Netzwerk = '" & nw & "') AND NWSTANDORT = (select NWSTANDORT from TbL_Netzwerke Where Netzwerk = '" & nw & "') ORDER BY HOST"
|
||||
reader = cmd.ExecuteReader()
|
||||
|
||||
Do While reader.Read()
|
||||
Dim IPAdresse As String = reader("IPAdresse")
|
||||
Dim Host As Integer = Class1.IP2Host(IPAdresse)
|
||||
|
||||
If Host = dhcpstart Then
|
||||
DHCPUpdate("Start", IPAdresse)
|
||||
ElseIf Host = dhcpend Then
|
||||
DHCPUpdate("Ende", IPAdresse)
|
||||
ElseIf Host > dhcpstart And Host < dhcpend Then
|
||||
DHCPUpdate("1", IPAdresse)
|
||||
Else
|
||||
DHCPUpdate("0", IPAdresse)
|
||||
End If
|
||||
Loop
|
||||
reader.Close()
|
||||
con.Close()
|
||||
' LblInfo.Text = "Gespeichert."
|
||||
' Timer3.Enabled = True
|
||||
End Function
|
||||
|
||||
Public Shared Function DHCPUpdate(Wert As String, IPAdresse As String)
|
||||
Dim dhcpcon As New SqlConnection
|
||||
Dim dhcpcmd As New SqlCommand
|
||||
dhcpcon.ConnectionString = Class1.DBConString
|
||||
dhcpcmd.Connection = dhcpcon
|
||||
|
||||
dhcpcon.Open()
|
||||
dhcpcmd.CommandText = "UPDATE TbL_Netzwerkclients SET DHCP = '" & Wert & "' WHERE IPAdresse = '" & IPAdresse & "'"
|
||||
dhcpcmd.ExecuteNonQuery()
|
||||
dhcpcon.Close()
|
||||
End Function
|
||||
|
||||
|
||||
Public Shared Function RefillNW(netzwerk As String)
|
||||
Dim NWStandort, NWName, Subnet, dhcpstart, dhcpend As String
|
||||
Dim NWBits As Integer
|
||||
|
||||
Class1.NetzwerkadresseInfo(netzwerk, NWStandort, NWName, Subnet)
|
||||
Class1.mask2nwbit(Subnet, NWBits)
|
||||
Class1.Netzwerkfuellen(netzwerk, NWBits, NWName, NWStandort)
|
||||
Class1.getDHCPstartend(netzwerk, dhcpstart, dhcpend)
|
||||
Class1.DHCPFill(dhcpstart, dhcpend, netzwerk)
|
||||
End Function
|
||||
|
||||
Public Shared Function GetFQDNandType(IPAdresse As String, ByRef FQDN As String, ByRef Type As String)
|
||||
Dim con As New SqlConnection
|
||||
Dim cmd As New SqlCommand
|
||||
Dim reader As SqlDataReader
|
||||
con.ConnectionString = Class1.DBConString
|
||||
cmd.Connection = con
|
||||
|
||||
|
||||
con.Open()
|
||||
cmd.CommandText = "SELECT * FROM TbL_Netzwerkclients WHERE IPAdresse = '" & IPAdresse & "'"
|
||||
reader = cmd.ExecuteReader()
|
||||
Do While reader.Read
|
||||
FQDN = ReadNullAsEmptyString(reader, "FQDN")
|
||||
Type = ReadNullAsEmptyString(reader, "Type")
|
||||
Loop
|
||||
con.Close()
|
||||
End Function
|
||||
|
||||
Public Shared Function ReadNullAsEmptyString(ByVal reader As IDataReader, ByVal Abfrage As String)
|
||||
If IsDBNull(reader(Abfrage)) Then
|
||||
Return ""
|
||||
Else
|
||||
Return reader(Abfrage)
|
||||
End If
|
||||
End Function
|
||||
Public Shared Function ReadNullAs0(ByVal reader As IDataReader, ByVal Abfrage As String)
|
||||
If IsDBNull(reader(Abfrage)) Then
|
||||
Return "0"
|
||||
Else
|
||||
Return reader(Abfrage)
|
||||
End If
|
||||
End Function
|
||||
|
||||
Public Shared Function Host2IP(ByVal Host As String, ByVal nwstandort As String, ByVal netname As String, ByRef IP As String)
|
||||
Dim con As New SqlConnection
|
||||
Dim cmd As New SqlCommand
|
||||
Dim reader As SqlDataReader
|
||||
con.ConnectionString = Class1.DBConString
|
||||
cmd.Connection = con
|
||||
|
||||
|
||||
con.Open()
|
||||
cmd.CommandText = "SELECT * FROM TbL_Netzwerkclients WHERE HOST = '" & Host & "' AND NWStandort = '" & nwstandort & "' AND NETNAME = '" & netname & "'"
|
||||
reader = cmd.ExecuteReader()
|
||||
Do While reader.Read
|
||||
IP = ReadNullAsEmptyString(reader, "IPAdresse")
|
||||
'Type = ReadNullAsEmptyString(reader, "Type")
|
||||
Loop
|
||||
con.Close()
|
||||
|
||||
End Function
|
||||
|
||||
Public Shared Function Name2Netzwerk(ByVal nwstandort As String, ByVal netname As String, ByRef Netzwerk As String)
|
||||
Dim con As New SqlConnection
|
||||
Dim cmd As New SqlCommand
|
||||
Dim reader As SqlDataReader
|
||||
con.ConnectionString = Class1.DBConString
|
||||
cmd.Connection = con
|
||||
|
||||
|
||||
con.Open()
|
||||
cmd.CommandText = "SELECT Netzwerk FROM TbL_Netzwerke WHERE NWStandort = '" & nwstandort & "' AND NETNAME = '" & netname & "'"
|
||||
reader = cmd.ExecuteReader()
|
||||
Do While reader.Read
|
||||
Netzwerk = ReadNullAsEmptyString(reader, "Netzwerk")
|
||||
'Type = ReadNullAsEmptyString(reader, "Type")
|
||||
Loop
|
||||
con.Close()
|
||||
|
||||
End Function
|
||||
Public Shared Function IP2ShortNW(ByVal IPAdresse As String)
|
||||
Dim con As New SqlConnection
|
||||
Dim cmd As New SqlCommand
|
||||
Dim reader As SqlDataReader
|
||||
con.ConnectionString = Class1.DBConString
|
||||
cmd.Connection = con
|
||||
Dim Netzwerk As String
|
||||
|
||||
|
||||
con.Open()
|
||||
cmd.CommandText = "SELECT Netzwerk FROM TbL_Netzwerkclients WHERE IPAdresse = '" & IPAdresse & "' "
|
||||
reader = cmd.ExecuteReader()
|
||||
Do While reader.Read
|
||||
Netzwerk = ReadNullAsEmptyString(reader, "Netzwerk")
|
||||
'Type = ReadNullAsEmptyString(reader, "Type")
|
||||
Loop
|
||||
con.Close()
|
||||
Return Netzwerk
|
||||
End Function
|
||||
|
||||
Public Shared Function GetDHCPServer(ByVal Netzwerkadresse As String)
|
||||
Dim con As New SqlConnection
|
||||
Dim cmd As New SqlCommand
|
||||
Dim reader As SqlDataReader
|
||||
con.ConnectionString = Class1.DBConString
|
||||
cmd.Connection = con
|
||||
Dim DHCPServer As String
|
||||
|
||||
|
||||
con.Open()
|
||||
cmd.CommandText = "SELECT DHCPServer FROM TbL_Netzwerke WHERE Netzwerk = '" & Netzwerkadresse & "' "
|
||||
reader = cmd.ExecuteReader()
|
||||
Do While reader.Read
|
||||
DHCPServer = ReadNullAsEmptyString(reader, "DHCPServer")
|
||||
'Type = ReadNullAsEmptyString(reader, "Type")
|
||||
Loop
|
||||
con.Close()
|
||||
Return DHCPServer
|
||||
End Function
|
||||
|
||||
Public Shared Function Autocomplete(ByRef txtbox As TextBox, spalte As String, Tabelle As String)
|
||||
Dim tmp As New AutoCompleteStringCollection()
|
||||
Dim con As New SqlConnection
|
||||
Dim cmd As New SqlCommand
|
||||
con.ConnectionString = Class1.DBConString
|
||||
cmd.Connection = con
|
||||
|
||||
Try
|
||||
con.Open()
|
||||
|
||||
Dim ds As New DataSet()
|
||||
Dim dt As New DataTable()
|
||||
Dim dataadapter As New SqlDataAdapter("SELECT Distinct " & spalte & " from " & Tabelle & "", con)
|
||||
dataadapter.Fill(ds)
|
||||
|
||||
txtbox.AutoCompleteMode = AutoCompleteMode.SuggestAppend
|
||||
txtbox.AutoCompleteSource = AutoCompleteSource.CustomSource
|
||||
txtbox.AutoCompleteCustomSource = tmp
|
||||
|
||||
For Each dr As DataRow In ds.Tables(0).Rows
|
||||
Try
|
||||
tmp.Add(dr.Item(0))
|
||||
Catch
|
||||
End Try
|
||||
|
||||
'Items.Add(dr.Item(0))
|
||||
Next
|
||||
|
||||
con.Close()
|
||||
Catch ex As Exception
|
||||
MsgBox("Fehler Autocomplete: " & ex.Message)
|
||||
con.Close()
|
||||
End Try
|
||||
con.Close()
|
||||
End Function
|
||||
|
||||
End Class
|
||||
154
Dokumentation/Classes/DHCP.vb
Normal file
154
Dokumentation/Classes/DHCP.vb
Normal file
@@ -0,0 +1,154 @@
|
||||
Imports System.Net
|
||||
Imports System.Runtime.InteropServices
|
||||
|
||||
|
||||
Public Class DHCP
|
||||
<StructLayout(LayoutKind.Sequential)>
|
||||
Public Structure DHCP_IP_ARRAY
|
||||
Dim NumElements As Int32
|
||||
Dim Elements As IntPtr
|
||||
End Structure
|
||||
|
||||
<StructLayout(LayoutKind.Sequential)>
|
||||
Public Structure DHCP_CLIENT_INFO_ARRAY
|
||||
|
||||
Dim NumElements As Integer
|
||||
Dim Clients As IntPtr
|
||||
|
||||
End Structure
|
||||
|
||||
<StructLayout(LayoutKind.Sequential)>
|
||||
Public Structure DHCP_CLIENT_INFO
|
||||
|
||||
Dim ClientIpAddress As Int32
|
||||
Dim SubnetMask As Int32
|
||||
Dim ClientHardwareAddress As DHCP_BINARY_DATA
|
||||
|
||||
<MarshalAs(UnmanagedType.LPWStr)>
|
||||
Dim ClientName As String
|
||||
|
||||
<MarshalAs(UnmanagedType.LPWStr)>
|
||||
Dim ClientComment As String
|
||||
|
||||
Dim ClientLeaseExpires As Date_Time
|
||||
Dim OwnerHost As DHCP_HOST_INFO
|
||||
|
||||
End Structure
|
||||
|
||||
<StructLayout(LayoutKind.Sequential)>
|
||||
Public Structure DHCP_BINARY_DATA
|
||||
Dim DataLength As Int32
|
||||
Dim Data As IntPtr
|
||||
End Structure
|
||||
|
||||
<StructLayout(LayoutKind.Sequential)>
|
||||
Public Structure Date_Time
|
||||
|
||||
<MarshalAs(UnmanagedType.U4)>
|
||||
Dim dwLowDateTime As UInt32
|
||||
|
||||
<MarshalAs(UnmanagedType.U4)>
|
||||
Dim dwHighDateTime As UInt32
|
||||
|
||||
End Structure
|
||||
|
||||
<StructLayout(LayoutKind.Sequential)>
|
||||
Public Structure DHCP_HOST_INFO
|
||||
|
||||
Dim IpAddress As Int32
|
||||
|
||||
<MarshalAs(UnmanagedType.LPWStr)>
|
||||
Dim NetBiosName As String
|
||||
|
||||
<MarshalAs(UnmanagedType.LPWStr)>
|
||||
Dim HostName As String
|
||||
|
||||
End Structure
|
||||
|
||||
Declare Function DhcpEnumServers Lib "dhcpsapi.dll" (TODO) As DHCP
|
||||
Declare Unicode Function DhcpEnumSubnetClients Lib "Dhcpsapi" (ByVal ServerIpAddress As String, ByVal SubnetAddress As UInteger, ByRef ResumeHandle As Integer, ByVal PreferredMaximum As Integer, ByRef ClientInfo As IntPtr, ByRef ClientsRead As Integer, ByRef ClientsTotal As Integer) As Integer
|
||||
|
||||
|
||||
Public Shared Client_Array As DHCP_CLIENT_INFO_ARRAY
|
||||
|
||||
Public Shared Sub ListSubnetClients(DHCP_Server As String, Scope As String, ByRef DHCP_Clients() As DHCP_CLIENT_INFO)
|
||||
|
||||
'Dim Client_Array As DHCP_CLIENT_INFO_ARRAY
|
||||
'Dim DHCP_Clients() As DHCP_CLIENT_INFO
|
||||
|
||||
' Why would you use int16 for a loop counter and for a pointer offset ?
|
||||
|
||||
Dim i, j As Int16
|
||||
|
||||
|
||||
Dim pt As IntPtr
|
||||
|
||||
Dim Read_Clients, Total_Clients As Int32
|
||||
Dim Error_Code As Int32
|
||||
Dim Rem_Handle As IntPtr
|
||||
Dim Scope_I As UInteger
|
||||
Dim a, b, c, d As UInteger
|
||||
|
||||
Scope_I = StringIPAddressToUInt32(Scope)
|
||||
Dim Scobe_C As UInteger
|
||||
Scobe_C = StringIPAddressToUInt32("255.255.255.255")
|
||||
StringNWAdressToUInt32(Scope, a, b, c, d)
|
||||
|
||||
d = a + b + c - 1
|
||||
|
||||
'Call dhcpsapi
|
||||
Error_Code = DhcpEnumSubnetClients(DHCP_Server, Scope_I, Rem_Handle, 65537, pt, Read_Clients, Total_Clients)
|
||||
|
||||
Client_Array = Marshal.PtrToStructure(pt, GetType(DHCP_CLIENT_INFO_ARRAY))
|
||||
|
||||
ReDim DHCP_Clients(Client_Array.NumElements - 1)
|
||||
|
||||
For i = 0 To Client_Array.NumElements - 1
|
||||
pt = Marshal.ReadIntPtr(Client_Array.Clients, j)
|
||||
DHCP_Clients(i) = Marshal.PtrToStructure(pt, GetType(DHCP_CLIENT_INFO))
|
||||
pt = IntPtr.Zero
|
||||
j = j + 4
|
||||
'Form1.Label1.Text &= DHCP_Clients(i).ClientName & " - " & DHCP_Clients(i).ClientIpAddress & " - " & Scobe_C - ((DHCP_Clients(i).ClientIpAddress * -1) + d) & vbCrLf
|
||||
Next i
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
Friend Shared Function StringIPAddressToUInt32(Address As String) As UInteger
|
||||
Dim µAddress As IPAddress = System.Net.IPAddress.Parse(Address)
|
||||
Dim µAddressBytes As Byte() = µAddress.GetAddressBytes()
|
||||
|
||||
Dim µReturnValue As UInteger = CUInt(µAddressBytes(0)) << 24
|
||||
'Label1.Text &= µReturnValue & vbCrLf
|
||||
µReturnValue += CUInt(µAddressBytes(1)) << 16
|
||||
'Label1.Text &= µReturnValue & vbCrLf
|
||||
µReturnValue += CUInt(µAddressBytes(2)) << 8
|
||||
'Label1.Text &= µReturnValue & vbCrLf
|
||||
µReturnValue += CUInt(µAddressBytes(3))
|
||||
'Label1.Text &= µReturnValue & vbCrLf
|
||||
|
||||
Return µReturnValue
|
||||
End Function
|
||||
Friend Shared Function StringNWAdressToUInt32(Address As String, ByRef a As UInteger, ByRef b As UInteger, ByRef c As UInteger, ByRef d As UInteger) As UInteger
|
||||
Dim µAddress As IPAddress = System.Net.IPAddress.Parse(Address)
|
||||
Dim µAddressBytes As Byte() = µAddress.GetAddressBytes()
|
||||
|
||||
a = CUInt(µAddressBytes(0)) << 24
|
||||
b = CUInt(µAddressBytes(1)) << 16
|
||||
c = CUInt(µAddressBytes(2)) << 8
|
||||
d = CUInt(µAddressBytes(3))
|
||||
|
||||
End Function
|
||||
Friend Shared Function StringNWAdressToNWAdressSHORT(Address As String, ByRef NWAdressShort As String) As UInteger
|
||||
'Dim NWAdressSHORT As String
|
||||
Dim µAddress As IPAddress = System.Net.IPAddress.Parse(Address)
|
||||
Dim µAddressBytes As Byte() = µAddress.GetAddressBytes()
|
||||
NWAdressSHORT = µAddressBytes(0).ToString & "." & µAddressBytes(1).ToString & "." & µAddressBytes(2).ToString & "."
|
||||
'Return NWAdressSHORT
|
||||
|
||||
End Function
|
||||
|
||||
|
||||
|
||||
End Class
|
||||
23
Dokumentation/Classes/Folder.vb
Normal file
23
Dokumentation/Classes/Folder.vb
Normal file
@@ -0,0 +1,23 @@
|
||||
Public Class Folder
|
||||
Public Shared Function FolderMove(oldID As String, oldHost As String, newID As String, NewHost As String)
|
||||
Dim PathOld As String
|
||||
Dim PathNew As String
|
||||
|
||||
PathOld = Class1.FilePath & "\" & oldID & "\" & oldHost
|
||||
PathNew = Class1.FilePath & "\" & newID & "\" & NewHost
|
||||
|
||||
If IO.Directory.Exists(PathNew) Then
|
||||
MsgBox("Zielordner existiert bereits! Abbruch.")
|
||||
Return "Fehler"
|
||||
End If
|
||||
If IO.Directory.Exists(Class1.FilePath & "\" & newID) Then
|
||||
Else
|
||||
IO.Directory.CreateDirectory(Class1.FilePath & "\" & newID)
|
||||
End if
|
||||
|
||||
If IO.Directory.Exists(PathOld) Then
|
||||
IO.Directory.Move(PathOld, PathNew)
|
||||
End If
|
||||
|
||||
End Function
|
||||
End Class
|
||||
Reference in New Issue
Block a user