259 lines
11 KiB
VB.net
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 |