0
我在C#中構建了一個win7程序,它充當一個數據包嗅探器,用於搜索特定數據包,並在收到數據包時執行traceroute。捕捉看起來如何,捕捉和使用wireshark的結果是一樣的。數據包捕獲沒有收到直接發送到IP地址的數據
//Start capture
startStop.Text = "Stop";
capture = true;
socket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.IP);
info.Text = "Capturing on: " + ifaces.SelectedItem.ToString();
socket.Bind(new IPEndPoint(ifs[ifaces.SelectedIndex], 0));
socket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.HeaderIncluded, true);
byte[] byTrue = new byte[4] { 1, 0, 0, 0 };
byte[] byOut = new byte[4];
socket.IOControl(IOControlCode.ReceiveAll, byTrue, byOut);
socket.BeginReceive(data, 0, data.Length, SocketFlags.None, new AsyncCallback(OnReceive), null);
發送特定數據包的程序是一個將數據發送到IP地址的android應用程序。
try{
string server="http://32.32.32.32/"
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(server);
httppost.setEntity(new StringEntity("TRACERT"));
HttpResponse response = httpclient.execute(httppost);
}catch(Exception e){
}
問題是它在執行方法上超時。服務器是我的電腦的外部IP地址(在這裏更改)。這裏有什麼問題?
我建立了XAMPP Apache服務器。它適用於我使用內部IP並從同一個Wifi內發送。與外部它不。 – hubert
@hubert我假定內部和外部地址是指您的互聯網路由器在WAN端(外部)使用的地址以及您在路由器(內部)後面的專用IP範圍內使用的地址。您是否在路由器中配置了端口轉發以將端口80轉發到您的計算機?你可以從外面訪問你的網絡服務器(使用普通的瀏覽器,也許從你的移動設備)? –