Files
Doku/Dokumentation/Administration/NWEdit.vb
2018-11-22 16:52:25 +01:00

259 lines
11 KiB
VB.net

Imports System.Data.SqlClient
Public Class NWEdit
Private con As New SqlConnection
Private cmd As New SqlCommand
Private reader As SqlDataReader
Public Netzwerkname As String
Public NWStandort As String
Public NWName As String
Public NWAddress As String
Public Neu As Boolean = False
Private Function dbload()
con.ConnectionString = Class1.DBConString
cmd.Connection = con
End Function
Private Sub NetzwerkBearbeiten_Load(sender As Object, e As EventArgs) Handles MyBase.Load
dbload()
LblInfo.Text = ""
If Main.Debug = True Then
PanDebug.Visible = True
End If
If Class1.Absender = "Main" Then
NWStandort = Main.SenderStandort
NWName = Main.SenderNetzwerk
Netzwerkname = Main.SenderStandort & "_" & Main.SenderNetzwerk
ElseIf Class1.Absender = "Standorthinzu" Then
Netzwerkname = Standorthinzu.NeuerStandortNameIntern
NWStandort = Standorthinzu.NeuerStandortName
NWName = "Intern"
ElseIf Class1.Absender = "Netzwerkhinzu" Then
Netzwerkname = NetzwerkHinzu.NeuerNetzwerkNameIntern
NWStandort = NetzwerkAdmin.LstStandort.SelectedItem
NWName = NetzwerkHinzu.TxtName.Text
Else
MsgBox("Keine Daten")
End If
import()
SubnetMask2NWBits()
LblVLANName.Text = "Standort: " & NWStandort & " Name: " & NWName & " ändern:"
LblTest.Text = Netzwerkname
' PanDebug.Visible = False
End Sub
''---------------------------------------------------------------------------LADEN---------------------------------------------------------------------------''
Private Function import()
Try
con.Open()
cmd.CommandText = "SELECT * FROM Tbl_Netzwerke WHERE Netzwerkname='" & Netzwerkname & "'"
ausgabe_Netzwerk()
Catch ex As Exception
MsgBox(ex.Message)
End Try
con.Close()
If TxtNetzwerk.Text = "" Then
Neu = True
Else
Neu = False
End If
End Function
Private Function ausgabe_Netzwerk()
Try
reader = cmd.ExecuteReader()
Do While reader.Read()
TxtNetzwerk.Text = reader("Netzwerk")
TxtSubnet.Text = reader("Subnetz")
TxtGateway.Text = reader("Gateway")
TxtDHCPBereichStart.Text = reader("DHCPStart")
TxtDHCPBereichEnde.Text = reader("DHCPEnd")
TxtDHCPServer.Text = reader("DHCPServer")
TxtDNSServer.Text = reader("DNSServer")
TxtVLAN.Text = reader("VLAN")
TxtInfo.Text = reader("Info")
ChkDHCPAnzeigen.Checked = Class1.ReadNullAs0(reader, "DHCPAbfragen")
Loop
reader.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Function
''---------------------------------------------------------------------------BUTTONS---------------------------------------------------------------------------''
Private Sub CmdReset_Click(sender As Object, e As EventArgs) Handles CmdReset.Click
import()
End Sub
Private Sub CmdAbbrechen_Click(sender As Object, e As EventArgs) Handles CmdAbbrechen.Click
Main.allesladen()
' NetzwerkAdmin.LstStandortLoad()
' NetzwerkAdmin.LstNetzwerkLoad()
Close()
End Sub
Private Sub CmdSave_Click(sender As Object, e As EventArgs) Handles CmdSave.Click
NWAddressGenerieren()
If Neu = False Then
Try
con.Open()
cmd.CommandText = "UPDATE TBL_Netzwerke SET Netzwerk = '" & TxtNetzwerk.Text & "', Subnetz='" & TxtSubnet.Text & "', Gateway='" & TxtGateway.Text & "',DHCPAbfragen = '" & ChkDHCPAnzeigen.Checked & "', DHCPStart='" & TxtDHCPBereichStart.Text & "', DHCPEnd='" & TxtDHCPBereichEnde.Text & "', dhcpserver='" & TxtDHCPServer.Text & "', dnsserver='" & TxtDNSServer.Text & "', VLAN='" & TxtVLAN.Text & "', Info='" & TxtInfo.Text & "', NWAddress='" & NWAddress & "' WHERE Netzwerkname='" & Netzwerkname & "'"
cmd.ExecuteNonQuery()
con.Close()
Catch ex As Exception
End Try
ElseIf Neu = True Then
con.Open()
cmd.CommandText = "Insert into TBL_Netzwerke (Netzwerkname, Netzwerk, Subnetz, Gateway, DHCPStart, DHCPEnd, DHCPServer, DNSServer, VLAN, Info, NWAddress) values ('" & Main.SenderNetzwerk & "', '" & TxtNetzwerk.Text & "', '" & TxtSubnet.Text & "','" & TxtGateway.Text & "', '" & TxtDHCPBereichStart.Text & "', '" & TxtDHCPBereichEnde.Text & "', '" & TxtDHCPServer.Text & "', '" & TxtDNSServer.Text & "', '" & TxtVLAN.Text & "', '" & TxtInfo.Text & "', '" & NWAddress & "')"
cmd.ExecuteNonQuery()
con.Close()
End If
Try
Class1.Netzwerkfuellen(TxtNetzwerk.Text, TxtNWBits.Text, NWName, NWStandort)
DHCPFill(TxtDHCPBereichStart.Text, TxtDHCPBereichEnde.Text, TxtNetzwerk.Text)
Catch ex As Exception
MsgBox(ex.Message)
End Try
con.Close()
End Sub
Private Sub TxtNWBits_KeyUp_Enter(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TxtNWBits.KeyUp ', TxtHost.TextChanged
Try
If e.KeyValue = Keys.Enter Then
Dim subnetmask As String
Class1.bit2mask(TxtNWBits.Text, subnetmask)
TxtSubnet.Text = subnetmask
End If
Catch
End Try
End Sub
Private Sub TxtSubnet_KeyUp_Enter(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TxtSubnet.KeyUp ', TxtHost.TextChanged
Try
If e.KeyValue = Keys.Enter Then
SubnetMask2NWBits()
End If
Catch
End Try
End Sub
''----------------------------------------------------------------------------------------------------------------------------------------------------------''
''----------------------------------------------------------------------------------------------------------------------------------------------------------''
''---------------------------------------------------------------------------FUNCTIONS---------------------------------------------------------------------------''
Public Function NWAddressGenerieren()
NWAddress = TxtNetzwerk.Text
Try
Do
NWAddress = NWAddress.Remove(NWAddress.Length - 1)
Loop Until NWAddress.Last() = "."
Catch ex As Exception
MsgBox("Fehler beim Konvertieren der Netzwerkadresse.")
End Try
End Function
Private Function SubnetMask2NWBits()
Dim a, b, c, d, nwbits, hostbits As Integer
Class1.netmaskseperator(TxtSubnet.Text, a, b, c, d, nwbits, hostbits)
TxtNWBits.Text = nwbits
Dim host As Integer = Class1.IP2Host(TxtNetzwerk.Text)
NWAddressGenerieren()
TxtHostbereich.Text = NWAddress & host + 1 & " bis " & NWAddress & host + (2 ^ hostbits) - 2
End Function
Private Sub Netzwerkbearbeiten_Closing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
Main.allesladen()
End Sub
Private Sub DebugToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DebugToolStripMenuItem.Click
PanDebug.Visible = Not PanDebug.Visible
End Sub
Public Function DHCPFill(dhcpstart As String, dhcpend As String, nw As String)
Try
dhcpstart = Convert.ToInt32(dhcpstart)
dhcpend = Convert.ToInt32(dhcpend)
Catch ex As Exception
LblInfo.Text = "DHCP nicht anwendbar"
dhcpstart = 0
dhcpend = 0
' 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 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
Private Sub Timer3_Tick(sender As Object, e As EventArgs) Handles Timer3.Tick
LblInfo.Text = ""
Timer3.Enabled = False
End Sub
''----------------------------------------------------------------------------------------------------------------------------------------------------------''
''----------------------------------------------------------------------------------------------------------------------------------------------------------''
''---------------------------------------------------------------------------Test---------------------------------------------------------------------------''
Private Sub CmdTest_Click(sender As Object, e As EventArgs) Handles CmdTest.Click
LblTest.Text = TxtNetzwerk.Text & " " & TxtNWBits.Text & vbCrLf
'LblTest.Text &= Class1.Netzwerkfuellen(TxtNetzwerk.Text, TxtNWBits.Text) & vbCrLf
End Sub
''----------------------------------------------------------------------------------------------------------------------------------------------------------''
''----------------------------------------------------------------------------------------------------------------------------------------------------------''
End Class