rendered paste bodyusing System;
using System.Net;
using System.Net.Sockets;
using System.Drawing;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Windows.Forms;
using Tamir.IPLib;
using Tamir.IPLib.Packets;
namespace XBLip
{
public partial class XBLipForm : Form
{
public int DefaultTimeOut = 100;
public string DefaultGamerTag = "Unknown";
private PcapDeviceList Interfaces;
private PcapDevice CurrentInterface;
private List<ConnectedUser> ConnectUsers;
public struct ConnectedUser
{
public int Index;
public string IP;
public string GamerTag;
public int Hits;
public int TimeOut;
}
public XBLipForm()
{
InitializeComponent();
}
private void UpdateUsers(Object sender, Packet Packet)
{
if(Packet is UDPPacket) {
UDPPacket UDP = (UDPPacket)Packet;
DebugList.Items.Add(UDP.SourceAddress + ":" + UDP.SourcePort + " >> " + UDP.DestinationAddress + ":" + UDP.DestinationPort);
}
/*
int i = 0;
string ip = Packet.OriginationAddress;
DebugList.Items.Add(ip);
foreach (ConnectedUser User in ConnectedUsers)
{
ConnectedUser OldUser = (ConnectedUser)ConnectedUsers[User.Index];
if (OldUser.IP == ip)
{
OldUser.Hits++;
OldUser.TimeOut = DefaultTimeOut;
}
else
{
ConnectedUser NewUser = new ConnectedUser();
NewUser.Index = i;
NewUser.IP = ip;
NewUser.GamerTag = DefaultGamerTag;
NewUser.Hits = 0;
NewUser.TimeOut = DefaultTimeOut;
ConnectedUsers.Add(NewUser);
i++;
}
if (OldUser.TimeOut <= 0)
{
ConnectedUsers.Remove(OldUser);
}
else
{
ConnectedUsers[User.Index] = OldUser;
}
}
*/
}
private void UpdateInterfaces()
{
InterfaceList.DataSource = SharpPcap.GetAllDevices();
InterfaceList.DisplayMember = "PcapDescription";
/*
Interfaces = SharpPcap.GetAllDevices();
foreach(PcapDevice Interface in Interfaces)
{
InterfaceList.Items.Add(Interface.PcapDescription);
}
if (InterfaceList.Items.Count < 0) {
InterfaceList.Items.Add("No Devices Found!");
}
InterfaceList.SelectedIndex = -1;
*/
}
private void StartCapture(PcapDevice Interface)
{
CurrentInterface = Interface;
CurrentInterface.PcapOnPacketArrival += new SharpPcap.PacketArrivalEvent(UpdateUsers);
CurrentInterface.PcapOpen(true, 1000);
CurrentInterface.PcapSetFilter("udp");
CurrentInterface.PcapStartCapture();
CurrentInterface.PcapClose();
}
private void StopCapture()
{
CurrentInterface.PcapStopCapture();
}
private void StartButton_Click(object sender, EventArgs e)
{
StopButton.Enabled = true;
StartButton.Enabled = false;
// PcapDevice SelectedInterface = InterfaceList.SelectedValue;
// StartCapture(SelectedInterface);
}
private void StopButton_Click(object sender, EventArgs e)
{
StartButton.Enabled = true;
StopButton.Enabled = false;
}
private void XBLipForm_Load(object sender, EventArgs e)
{
UpdateInterfaces();
}
private void UpdateInterfaceList_Tick(object sender, EventArgs e)
{
// UpdateInterfaces();
}
private void InterfaceList_SelectedIndexChanged(object sender, EventArgs e)
{
}
}
}