PDA

View Full Version : حرفه ای: استفاده از HttpListener



alimooghashang
سه شنبه 14 شهریور 1391, 16:16 عصر
من میخوام یه برنامه بنویسم که هر برنامه ی تو ویندوز به اینترنت دسترسی خواست داشته باشه، بفهمم!
و اون رو به سرور لوکال خودم منتقل کنم ، که بهش یه ارر که HTML هست رو نمایش بدم
مثلا اگه برنامه ی خواست google.com رو باز کنه ، برنامه ی من بفهمه و اون رو به localhost منتقل کنه یا یه همچین چیزی
جستجویی که کردم ظاهرا باید از HttpListener استفاده کنیم
منتها چطوری نمیدونم
کسی تجربه ش رو داره؟
ممنون

alimooghashang
شنبه 18 شهریور 1391, 12:19 عصر
میشه با این کلاس این کار رو کرد؟
یا کلاس دیگه ی داره؟

RamezanBeik
یک شنبه 10 دی 1391, 08:50 صبح
بله شما می تونید با کلاس HttpListner این کار رو انجام بدید به این ترتیب که اگر کلایت در خواست پورت 80 رو کرد برای اون یه صفحه خطا ارسال کنید

alimooghashang
یک شنبه 10 دی 1391, 08:57 صبح
بله شما می تونید با کلاس HttpListner این کار رو انجام بدید به این ترتیب که اگر کلایت در خواست پورت 80 رو کرد برای اون یه صفحه خطا ارسال کنید

خب میشه یه مثال هم بزنید؟

RamezanBeik
دوشنبه 11 دی 1391, 09:28 صبح
این تیکه کد می تونه به شما ایده خوبی بده.

HttpListener
Listener = new HttpListener);
HttpListenerContext Context;
HttpListenerRequest Request;
string Address = "http://192.168.1.233:8080/";
Listener.Prefixes.Add(Address);
Listener.Start();
Context = Listener.GetContext();
Request = Context.Request;
int Port= Request.LocalEndPoint.Port;
Listener.Start();
Context = Listener.GetContext();
Request = Context.Request;
int Port= Request.LocalEndPoint.Port;
if (Port==80)
{
using (HttpListenerResponse Response = Context.Response)
{
html = "<h1>Access Denied<h1>";
byte[] data = Encoding.UTF8.GetBytes(html);
Response.ContentType = "text/html";
Response.ContentEncoding = Encoding.UTF8;
Response.ContentLength64 = data.Length;
using (Stream outpout = Response.OutputStream)
{
outpout.Write(data, 0, data.Length);
outpout.Flush();
}
}