corsa91 Skrevet 18. januar 2017 Del Skrevet 18. januar 2017 Hei Jeg er litt ny her men jeg prøver for det. Planen er å lage en slags overvåker. Den skal pinge et ipadresse med 10 eller 20 sek også skal den rapportere det inn. Innholdet skal ikke lagres i noe database. Har googlet litt men har ikke blitt særlig klok. Hvis den porten svarer så skal den få 1 hvis ikke så skal den få 0 i status. Har definert slik namespace Handyman_Monitor { public class TelNetResultat { public int Status { get; set; } public string Navn{ get; set; } public Char Ipserver { get; set; } } } Eksempel jeg har testet; TelNetResultat resultFromOneServer = new TelNetResultat() { Status = 1, Navn= "A1", Ipserver= '192.168.5.151' }; results.Add(resultFromOneServer); Kan jeg bruke noe sånt for å hente resultat fra telnet? TcpClient telnet = new TcpClient("10.5.6.59", 23);NetworkStream telnetStream = telnet.GetStream();StreamReader input = new StreamReader(telnetStream); Lenke til kommentar
Hårek Skrevet 19. januar 2017 Del Skrevet 19. januar 2017 Skjønner ikke hva du skal med Telnet for dette. Se heller på System.Net.NetworkInformation.Ping private bool CheckOnce() { using (Ping pingSender = new Ping()) { const int pingTimeout = 1000; const int byteSize = 32; byte[] buffer = new byte[byteSize]; PingReply pingReply = pingSender.Send(_ipAddress1, pingTimeout, buffer, _pingOptions); // send an Internet Control Message Protocol (ICMP) echo message if (pingReply != null && pingReply.Status == IPStatus.Success) { return true; } } return false; } Lenke til kommentar
corsa91 Skrevet 19. januar 2017 Forfatter Del Skrevet 19. januar 2017 (endret) Men Ping sjekker ikke om porten er åpen? Endret 19. januar 2017 av Hårek Fjernet unødig sitering Lenke til kommentar
Hårek Skrevet 19. januar 2017 Del Skrevet 19. januar 2017 Sjekk denne: http://stackoverflow.com/questions/11837541/check-if-a-port-is-open Lenke til kommentar
corsa91 Skrevet 19. januar 2017 Forfatter Del Skrevet 19. januar 2017 Har sjekket. Skrevet inn slik: Den kicker på IP. Det som er markert med fet skrift. Jeg får heller ikke testet skriptet pga feilen using System.Windows.Forms; private void ScanPort() { string hostname = "192.168.5.153"; int portno = 1300; IPAddress ipa = (IPAddress)Dns.GetHostAddresses(hostname)[0]; try { System.Net.Sockets.Socket sock = new System.Net.Sockets.Socket(System.Net.Sockets.AddressFamily.InterNetwork, System.Net.Sockets.SocketType.Stream, System.Net.Sockets.ProtocolType.Tcp); sock.Connect(ipa, portno); if (sock.Connected == true) // Port is in use and connection is successful MessageBox.Show("Port is Closed"); sock.Close(); } catch (System.Net.Sockets.SocketException ex) { if (ex.ErrorCode == 10061) // Port is unused and could not establish connection MessageBox.Show("Port is Open!"); else MessageBox.Show(ex.Message); } } private void bCheckServers_Click(object sender, EventArgs e) { List<TelNetResultat> results = new List<TelNetResultat>(); // place code to fill list from telnet here TelNetResultat resultFromOneServer = new TelNetResultat() { Status = 1, Kunde = "1", Ipserver= "192.168.5.153" }; results.Add(resultFromOneServer); TelNetResultat resultFromOneServer2 = new TelNetResultat() { Status = 2, Kunde = "1", Ipserver ="192.168.5.153" }; results.Add(resultFromOneServer2); telNetResultatBindingSource.DataSource = results; } Lenke til kommentar
Hårek Skrevet 20. januar 2017 Del Skrevet 20. januar 2017 Skrevet inn slik: Den kicker på IP. Det som er markert med fet skrift. Tekst i code kan ikke vises med fet skrift. PS: bruk using System.Net.Sockets; istedet for å gjenta System.Net.Sockets. hele veien. Lenke til kommentar
corsa91 Skrevet 4. februar 2017 Forfatter Del Skrevet 4. februar 2017 Har klart å få til dette. Hvordan kan jeg få den til å kjøre telnet i Command prompt? using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Net; namespace Handyman_Monitor { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { } private void tableLayoutPanel1_Paint(object sender, PaintEventArgs e) { } private void pictureBox1_Click(object sender, EventArgs e) { } private void Start_Click(object sender, EventArgs e) { } private void pictureBox1_Click_1(object sender, EventArgs e) { } public static void ScanPort(ServerToTelNet oneServer) { string hostname = oneServer.HostName; int portno = 1300; IPAddress ipa = (IPAddress)Dns.GetHostAddresses(hostname)[0]; try { System.Net.Sockets.Socket sock = new System.Net.Sockets.Socket(System.Net.Sockets.AddressFamily.InterNetwork, System.Net.Sockets.SocketType.Stream, System.Net.Sockets.ProtocolType.Tcp); sock.Connect(ipa, portno); if (sock.Connected == true) // Port is in use and connection is successful MessageBox.Show("Port is Closed"); sock.Close(); } catch (System.Net.Sockets.SocketException ex) { if (ex.ErrorCode == 10061) // Port is unused and could not establish connection MessageBox.Show("Port is Open!"); else MessageBox.Show(ex.Message); } } private void bCheckServers_Click(object sender, EventArgs e) { List<TelNetResultat> results = new List<TelNetResultat>(); // place code to fill list from telnet here TelNetResultat resultFromOneServer = new TelNetResultat() { Status = 1, Kunde = "Imtech", Ipserver= "192.168.5.151" }; results.Add(resultFromOneServer); List<ServerToTelNet> seerverList = new List<ServerToTelNet>(); seerverList.Add(new ServerToTelNet() { HostName = "192.168.5.153" }); seerverList.Add(new ServerToTelNet() { HostName = "192.168.5.154" }); seerverList.Add(new ServerToTelNet() { HostName = "192.168.5.155" }); // // foreach (ServerToTelNet oneServer in seerverList) { ScanPort(oneServer); } TelNetResultat resultFromOneServer2 = new TelNetResultat() { Status = 2, Kunde = "Imtech", Ipserver ="192.168.5.151" }; results.Add(resultFromOneServer2); telNetResultatBindingSource.DataSource = results; } private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { } private void telNetResultatBindingSource_CurrentChanged(object sender, EventArgs e) { } } } using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Net; namespace Handyman_Monitor { public class TelNetResultat { public int Status { get; set; } public string Kunde { get; set; } public string Ipserver { get; set; } } public class ServerToTelNet { public string HostName { get; set; } } } Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå