网络连接的问题

jcyluck 2009-04-03 09:17:50
一个服务程序:
用来监听本机与INTERNET的连接
如果发生了连接,就记录下该网站的IP与域名
请问该如何实现(用哪个类,我对网络不很懂)?

如:通过IE访问网易
则纪录:www.163.com , 60.191.80.142
...全文
163 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
木马?
zhouxingyu896 2009-04-10
  • 打赏
  • 举报
回复
用以下的命名空间
using System.Net.Sockets;
主要用以下的对象
TcpClient 客户短的,用来设置IP和短口号
TcpListener 服务器监听端,设置短口号
NetworkStream ns; 网络的传输流,等于是网络的管道,用来数据传输用的,
StreamReader sr; 读取流中的数据
StreamWriter sw; 将要写的数据
客户端 TcpClient tcpclt = new TcpClient("127.0.0.1", 8808);
NetworkStream ns = tcpclt.GetStream();
StreamReader sr = new StreamReader(ns);
sw = new StreamWriter(ns);
bool flag = true;
string str = "";
while (flag)
{
str = sr.ReadLine();
if (str != null)
{
textBox1.Text = textBox1.Text + "\r\n" + str;

}

}

服务器端 TcpListener tcplis = new TcpListener(8808);
tcplis.Start();
tcpclt = tcplis.AcceptTcpClient();
NetworkStream ns = tcpclt.GetStream();
StreamReader sr = new StreamReader(ns);
StreamWriter sw = new StreamWriter(ns);
sw.WriteLine(填入需要传到客户端的内容);
sw.Flush();
homejiji 2009-04-09
  • 打赏
  • 举报
回复
明显楼上没来晚
jietuan 2009-04-09
  • 打赏
  • 举报
回复
帮顶,又来晚了。
jcyluck 2009-04-07
  • 打赏
  • 举报
回复
自已顶
zzxap 2009-04-03
  • 打赏
  • 举报
回复
您可以通过socket类的RemoteEndPoint属性来获得客户端的IP
下面是一段简短的示例代码:
TcpListener serverlistener;
…//此处初始化代码省略
while(true){
Socket s = serverlistener.AcceptSocket();
string ip = ((IPEndPoint)s.RemoteEndPoint).Address.ToString();
string port = ((IPEndPoint)s.RemoteEndPoint).Port.ToString();
}
ximi82878 2009-04-03
  • 打赏
  • 举报
回复
等下,我这有个线程的,给你找下哈,不知道还在不在了
zzxap 2009-04-03
  • 打赏
  • 举报
回复
c#_监听TCP连接请求
2009年02月24日 星期二 03:52 P.M.
1、use TcpListener
TcpListener lsn = new TcpListener( int port );
lsn.Start();
Socket socket = lsn.AcceptSocket();

2、use Socket(need to Bind)
Socket lsnSocket = new Socket( AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp );
IPEndPoint ipep = new IPEndPoint( IPAddress.Any, port );
lsnSocket.Bind( ipep ); //Bind the lsnSocket
lsnSocket.Listen( 5 ); //5 is the queue's length
Socket acSocket = lsnSocket.Accept();
xqy_2007 2009-04-03
  • 打赏
  • 举报
回复
我也不知道,进来了顶下吧.
zzxap 2009-04-03
  • 打赏
  • 举报
回复
tracert
捷哥1999 2009-04-03
  • 打赏
  • 举报
回复
等于要监控浏览器的访问动作了?
jcyluck 2009-04-03
  • 打赏
  • 举报
回复
下载不了
Dobzhansky 2009-04-03
  • 打赏
  • 举报
回复
你修改下这个东东
RawSocket Class-Create Network Monitoring (Packet Sniffing) Apps
http://www.codeproject.com/KB/IP/networkmonitor.aspx?display=Print
jcyluck 2009-04-03
  • 打赏
  • 举报
回复
我是要监测本机对外发送连接请求时,记录本机与被请求服务器的信息
比如:我要访问163网站,当我在浏览器上点击WWW.163.COM后,就记录下WWW.163.COM 与 IP及时间等

Socket 好象只能监听接收到的请求,而不是发出一请求。

我尝过以下代码:
                TcpListener tcpListener = new TcpListener(ipLocalEndPoint);
tcpListener.Start();
Socket socket = tcpListener.AcceptSocket();

string ip = ((IPEndPoint)socket.RemoteEndPoint).Address.ToString();
string port = ((IPEndPoint)socket.RemoteEndPoint).Port.ToString();

MessageBox.Show(tcpListener.LocalEndpoint.ToString()+"\n"+tcpListener.Server.AddressFamily.ToString()
+ "\n" + ip+"\n" + port);


程序没有反映,没有跳出对话框,出现死机状态。
tcpListener.LocalEndpoint.ToString() 返回的只是我的机器上的一个端口。

对网络编程一点概念也没有
但现在需要一个监听的小功能,准备以服务的形式进行
感觉很单间的一个功能,所以懒得去找书了,网上搜了搜也没有详细的说明
请大家帮忙!

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧