private void comboBox1_SelectedValueChanged(object sender, EventArgs e) { int PortNum, PortUsed; DataAccess1.getPortused(comboBox1.Text, out PortNum, out PortUsed); textBox1.Text = PortNum.ToString(); }
public void ExecuteLoadPortNumber() { PortNum.Clear(); foreach (string s in SerialPort.GetPortNames()) { PortNum.Add(s); } SelectedIndexPortNum = SelectedIndexLast; }
/* * Funkce s využitím knihovny SharpPCap zpracovává pakety. * Podle argumentů programu, které jí byly předány, apikuje filtr a ukončí se s návratovou funkcí false, * neodpovídal-li mu paket. Vytáhne si ze struktury IPPaket informace potřebné pro hlavičku, sestaví ji * a vypíše. Pro zpracování těla paketu volá funkci work_packet_body */ private static bool work_packet(RawCapture raw, Argument arg) { //Extrahuje z rawCapture Packet (typ IPPacket, ze kterého lze lépe převzít informace) var packet = Packet.ParsePacket(raw.LinkLayerType, raw.Data); var ip = packet.Extract <IPPacket>(); //Pokud je typ packetu TCP který podle parametrů nezachystáváme (nebo analogicky UDP který nezachystáváme) //nebo je-li jiného typu, funkce nic nevypíše a vrací false (tudíž counter se nezapočítá do celkového počtu) if (!arg.Tcp && ip.Protocol == ProtocolType.Tcp) { return(false); } if (!arg.Udp && ip.Protocol == ProtocolType.Udp) { return(false); } if (ip.Protocol != ProtocolType.Tcp && ip.Protocol != ProtocolType.Udp) { return(false); } //Analyzuje o který packet jde a vytvoří verzi pro další zpracování bool isTcp = false; //false dále v programu == jde o udp TcpPacket PacTcp = null; UdpPacket PacUdp = null; bool PortChecksOut = true; if (ip.Protocol == ProtocolType.Tcp) { //TCP PacTcp = (TcpPacket)ip.PayloadPacket; isTcp = true; } else { //UDP PacUdp = (UdpPacket)ip.PayloadPacket; } //Vytvoří se string header a uloží se do něj v žádaném formátu čas přijetí paketu var date = raw.Timeval.Date; string header = date.Hour.ToString() + ":" + date.Minute.ToString() + ":" + date.Second.ToString() + "." + date.Millisecond.ToString(); //blok se pokusí přeložit ip adresu odesílatele, nenajde-li ji, uloží do stringu header pouze IP adresu try { IPHostEntry entry = Dns.GetHostEntry(ip.SourceAddress); header += " " + entry.HostName; } catch (SocketException) { header += " " + ip.SourceAddress.ToString(); } int PortNum; //načte číslo portu z odpovídajícího paketu if (isTcp) { PortNum = PacTcp.SourcePort; } else { PortNum = PacUdp.SourcePort; } //má-li se kontrolovat pouze jeden port, ověří zda je odesílatel ten port, pokud ne, uloží si informaci //že se zatím port nenašel, a přidá do hlavičky k vypsání číslo portu if (!arg.AllPorts) { if (PortNum != arg.Port) { PortChecksOut = false; } } header += " : " + PortNum.ToString(); //blok se pokusi prelozit destination adress, pokud nenajde, ulozi do hlavicky k vypsani IP adresu místo toho try { IPHostEntry entry = Dns.GetHostEntry(ip.DestinationAddress); header += " > " + entry.HostName; } catch (SocketException) { header += " > " + ip.DestinationAddress.ToString(); } if (isTcp) { PortNum = PacTcp.DestinationPort; } else { PortNum = PacUdp.DestinationPort; } //Pokud první port byl vyhodnocen jako neodpovídající (aka hledalo se číslo portu, ne všechny, a nebyl to on), //a zárveň ani zde číslo neodpovídá hledanému, funkce vrací false a vše do tohoto momentu zpracovávané se zahazuje if (!PortChecksOut && PortNum != arg.Port) { return(false); } header += " : " + PortNum.ToString() + "\n"; //Vypíše zpracovanou hlavičku, v tento moment už je jisté že zpracováváme paket který prošel filtry Console.WriteLine(header); parse_packet_body(raw); return(true); }