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