问题不确。你的意思是通过dns解析出ip?
你的意思是不是和IIS的80端口进行通讯呢?
string requestStr = "Get /Default.aspx HTTP/1.1 \r \n"; requestStr += "Host: localhost:80\r \n"; requestStr += "Connection: Close\r \n \r \n"; byte[] requestByte = Encoding.ASCII.GetBytes(requestStr); byte[] receiveData = new byte[1024 * 10]; int count = 0; IPAddress address = IPAddress.Parse("127.0.0.1"); IPEndPoint endPoint = new IPEndPoint(address, 80); Socket socket = new Socket(endPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp); socket.Connect(endPoint); if (socket.Connected) { socket.Send(requestByte); count = socket.Receive(receiveData); } char[] receiveChar = Encoding.ASCII.GetChars(receiveData); StringBuilder sb=new StringBuilder(); foreach (char c in receiveChar) { sb.Append(c); } Console.WriteLine(sb.ToString()); Console.ReadKey();
运行后:
HTTP/1.1 400 Bad Request Content-Type: text/html; charset=us-ascii Server: Microsoft-HTTPAPI/2.0 Date: Mon, 10 Sep 2012 07:35:01 GMT Connection: close Content-Length: 311
我想要的是 得到访问者的IP 地址
一秒钟 一个正常的IP 的连接数在10次左右 查看日志的方法 已经不能满足要求了
想通过C#来统计每秒钟访问次数最多的IP
提问的时候把需求说清楚就可以了,不用把你自己想到实现思路写出来。
Hi 您好 我是想用C# 来找到是 哪个ip 访问了 我IIS 上的网站 该怎样操作
(我有程序 和 服务器的 修改权限)
一秒钟 一个正常的IP 的连接数在10次左右 查看日志的方法 已经不能满足要求了
想通过C#来统计每秒钟访问次数最多的IP
C#和端口的通讯 怎么实现?
@白草红叶: C#可以用socket来写通讯程序,但是我看不出这和你的需求有什么关系。如果要统计访问某个网站的IP,可以在你的网站中通过记录请求的IP地址来实现.
通常这样实现实时统计,在你的应用中将IP和应用名称发送给消息队列(MSMQ),用于监听该MSMQ的处理程序实时的统计结果。也可以采用微软的 StreamInsight 技术,这是一个免费的CEP处理系统。