Ashish Tyagi 40
Ладно все что тебе нужно-
1. настройте веб-браузер для подключения к интернету через вашу программу. Если вы используете Internet Explorer, то Гото инструменты интернет возможность подключения по локальной сети настройки галочку "Использовать прокси-сервер для подключений LAN и поставь 127.0.0.1; вместо адреса: и 8080 (или что угодно), а порта нет. После этого, когда вы нажмете на любую ссылку или перейдете по любому адресу, Ваш браузер попытается установить соединение по IP:Порту, который вы настроили.
2. Создайте серверный сокет и начните прослушивать порт 8080 (или то, что вы когда-либо настроили). Примите подключение из веб-браузера и считайте все данные из клиентского сокета (это данные, отправленные веб-браузером), теперь у вас есть HTTP-запрос. для чтения этого 4k буфера вполне достаточно.
3. Теперь разберем этот запрос и получим значение заголовка HOST: он должен выглядеть так: "Host: www.google.co.in" (прочитайте спецификацию HTTP для формата HTTP - запроса). Подсказка для того, чтобы разобрать его искать индекс ;узел" или "узел" или "узел:" и копировать данные, начиная от хозяина и до "\р\н". Обрежьте содержимое.
И вот вы получили желаемое имя хоста.
4. Теперь у вас есть 2 случая
О. Это имя хоста находится в вашем списке блокировки.
Что делать :-Возьмите эти строки в буфер
<html><br />
<head><br />
<title>Your Page Title</title><br />
<meta http-equiv="REFRESH" content="5;url=http://www.codeproject.com"></meta></head><br />
<body><br />
Optional page text here.<br />
This site is blocked and you are redirecting to<br />
www.codeproject.com in 5 seconds<br />
</body><br />
</html>
и запишите этот буфер в клиентский сокет (сокет для браузера). Теперь браузер перенаправит страницу на www.codeproject.com через 5 секунд.
B. Это имя хоста находится в вашем списке блокировки.
Что делать :- создайте клиентский TCP-сокет, подключитесь к хосту, который вы только что проанализировали, напишите на него HTTP-запрос и прочтите ответ. теперь напишите этот ответ в сокет для веб-браузера, и браузер отобразит страницу.
Если вы нашли какие либо трудности в понимании или реализации этого не стесняйтесь спрашивать и как только вы напишете базовую программу тогда я расскажу вам о некоторых связанных с дизайном оптимизациях