Files
Doku/Dokumentation/Administration/NWEdit.vb
2019-09-25 10:01:04 +02:00

280 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
Property NW As New cNetzwerk
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 = ""
import()
If Class1.DebugMode = 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
NW.Netzwerkname = Standorthinzu.NeuerStandortNameIntern
NW.NWStandort = Standorthinzu.NeuerStandortName
NW.NetName = "Intern"
ElseIf Class1.Absender = "Netzwerkhinzu" Then
NW.Netzwerkname = NetzwerkHinzu.NeuerNetzwerkNameIntern
NW.NWStandort = NetzwerkAdmin.LstStandort.SelectedItem
NW.NetName = NetzwerkHinzu.TxtName.Text
Else
MsgBox("Keine Daten")
End If
SubnetMask2NWBits()
LblVLANName.Text = "Standort: " & NW.NWStandort & " Name: " & NW.NetName '& " ändern:"
LblTest.Text = NW.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()
' NW.getNetzwerk(NWStandort, NWName)
TxtNetzwerk.Text = NW.Netzwerk
TxtSubnet.Text = NW.Subnetz
TxtGateway.Text = NW.Gateway
TxtDHCPBereichStart.Text = NW.DHCPStart
TxtDHCPBereichEnde.Text = NW.DHCPEnd
TxtDHCPServer.Text = NW.DHCPServer
TxtDNSServer.Text = NW.DNSServer
TxtVLAN.Text = NW.VLAN
TxtInfo.Text = NW.Info
ChkDHCPAnzeigen.Checked = NW.DHCPAbfragen
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
Me.Cursor = Cursors.WaitCursor
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='" & NW.NWAddress & "' WHERE Netzwerkname='" & NW.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 & "', '" & NW.NWAddress & "')"
cmd.ExecuteNonQuery()
con.Close()
End If
Try
Class1.Netzwerkfuellen(TxtNetzwerk.Text, TxtNWBits.Text, NW.NetName, NW.NWStandort)
DHCPFill(TxtDHCPBereichStart.Text, TxtDHCPBereichEnde.Text, TxtNetzwerk.Text)
Catch ex As Exception
MsgBox(ex.Message)
End Try
con.Close()
Me.Cursor = Cursors.Default
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()
NW.NWAddress = TxtNetzwerk.Text
Try
Do
NW.NWAddress = NW.NWAddress.Remove(NW.NWAddress.Length - 1)
Loop Until NW.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 = NW.NWAddress & host + 1 & " bis " & NW.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