Programming Memoirs

Simple Python HTTP server using sockets

I brewed a simple Python-based http server using sockets today and I wanted to share the code, along with some comments. Sure, there is the http.server class, but why not have some fun? :-) Building a fully-fledged HTTP server is a big undertaking. I focused on building a small server, supporting only the basic functionality of the Hyper Text Transfer Protocol (namely the GET and HEAD request methods).

Some basic info

In short, HTTP is a request-response protocol. The web browser attempts to connects to the http server, HTTP server (usually) accepts the connection requests and goes into receiving mode. The client (e.g. web browser) sends one of the nine request methods to the server, along with the methods arguments. Server then processes the request and issues appropriate response. An example request looks like this:

As I have already mentioned, my server support only a GET and HEAD request method. the GET request method request specific a resource from the server. The server responds with headers and the resource body. The HEAD method is similar to GET, it differs in that the server responds only with the headers. This can be useful when a client wants to determine whether e.g. a time stamp on a resource has changed, and whether it has to be re-requested.

I designed by server class to expect a port number on which it is to listen for connection, with a default value of 80.  However you might need to run the server script in a privileged mode in order to successfully acquire this (or any other low) port from your system. Thus, in case the script fails to acquire the default or user provided port, it will attempt to acquire port 8080 as a last resort.

When the client requests a resource, the server attempts to open it from the local www/ folder. If the resource is present, server serves it, accompanied with appropriate headers (status 200 OK). If the resource is not present, the server then serves a error 404 web page, along with a slightly different header set describing the encountered problem.

Notice, that web server does parse in any way the GET arguments if they are provided in the URL (URL encoded arguments, in the form of index.html?arg1=val1&arg2=val2). It does, however, strip them from the URL, if they are present and servers the resource. Also note that this server runs only a single thread, thus serving one user at a time. The server is not meant to be fast nor secure. I must say that coding this server made for fun-filled afternoon. If I will have some free time in the future maybe I will extend it’s functionality a bit.

Example request-reply

Sample HEAD request to my server issued by Firefox

HEAD /index.html HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.3) Gecko/20100423 Ubuntu/10.04 (lucid) Firefox/3.6.3
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive

The most important is the first line. It specifies the request method (HEAD) and it’s arguments, most notably the file which is being requested. The second lines specifies the internet host and port of the resource requested. Lack of port following the local host implies port 80. More on the following lines can be found here. Response

Sample response headers sent from the server to the client:

HTTP/1.1 200 OK
Date: Sat, 19 Mar 2011 16:42:17
Server: Simple-Python-HTTP-Server
Connection: close

Notice, that it’s only basic response, containing only some basic information — most notably the first line, confirming that the requested resource exists. For the contrast, here is a sample response header from the server after the client had requested a non-existing resource:

HTTP/1.1 404 Not Found
Date: Sat, 19 Mar 2011 16:44:53
Server: Simple-Python-HTTP-Server
Connection: close

Final HTTP server code

And now for the code. Oh, and here’s the code along with some simple html/css/jpg files for testing: python-http-server.tar.gz. Also, you might want to check out some kind of a browser plugin which allows to issue custom HTTP request methods and view the response, such as this one.

#!/usr/bin/python

import socket  # Networking support
import signal  # Signal support (server shutdown on signal receive)
import time    # Current time

class Server:
 """ Class describing a simple HTTP server objects."""

 def __init__(self, port = 80):
     """ Constructor """
     self.host = ''   # <-- works on all avaivable network interfaces
     self.port = port
     self.www_dir = 'www' # Directory where webpage files are stored

 def activate_server(self):
     """ Attempts to aquire the socket and launch the server """
     self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     try: # user provided in the __init__() port may be unavaivable
         print("Launching HTTP server on ", self.host, ":",self.port)
         self.socket.bind((self.host, self.port))

     except Exception as e:
         print ("Warning: Could not aquite port:",self.port,"\n")
         print ("I will try a higher port")
         # store to user provideed port locally for later (in case 8080 fails)
         user_port = self.port
         self.port = 8080

         try:
             print("Launching HTTP server on ", self.host, ":",self.port)
             self.socket.bind((self.host, self.port))

         except Exception as e:
             print("ERROR: Failed to acquire sockets for ports ", user_port, " and 8080. ")
             print("Try running the Server in a privileged user mode.")
             self.shutdown()
             import sys
             sys.exit(1)

     print ("Server successfully acquired the socket with port:", self.port)
     print ("Press Ctrl+C to shut down the server and exit.")
     self._wait_for_connections()

 def shutdown(self):
     """ Shut down the server """
     try:
         print("Shutting down the server")
         s.socket.shutdown(socket.SHUT_RDWR)

     except Exception as e:
         print("Warning: could not shut down the socket. Maybe it was already closed?",e)

 def _gen_headers(self,  code):
     """ Generates HTTP response Headers. Ommits the first line! """

     # determine response code
     h = ''
     if (code == 200):
        h = 'HTTP/1.1 200 OK\n'
     elif(code == 404):
        h = 'HTTP/1.1 404 Not Found\n'

     # write further headers
     current_date = time.strftime("%a, %d %b %Y %H:%M:%S", time.localtime())
     h += 'Date: ' + current_date +'\n'
     h += 'Server: Simple-Python-HTTP-Server\n'
     h += 'Connection: close\n\n'  # signal that the conection wil be closed after complting the request

     return h

 def _wait_for_connections(self):
     """ Main loop awaiting connections """
     while True:
         print ("Awaiting New connection")
         self.socket.listen(3) # maximum number of queued connections

         conn, addr = self.socket.accept()
         # conn - socket to client
         # addr - clients address

         print("Got connection from:", addr)

         data = conn.recv(1024) #receive data from client
         string = bytes.decode(data) #decode it to string

         #determine request method  (HEAD and GET are supported)
         request_method = string.split(' ')[0]
         print ("Method: ", request_method)
         print ("Request body: ", string)

         #if string[0:3] == 'GET':
         if (request_method == 'GET') | (request_method == 'HEAD'):
             #file_requested = string[4:]

             # split on space "GET /file.html" -into-> ('GET','file.html',...)
             file_requested = string.split(' ')
             file_requested = file_requested[1] # get 2nd element

             #Check for URL arguments. Disregard them
             file_requested = file_requested.split('?')[0]  # disregard anything after '?'

             if (file_requested == '/'):  # in case no file is specified by the browser
                 file_requested = '/index.html' # load index.html by default

             file_requested = self.www_dir + file_requested
             print ("Serving web page [",file_requested,"]")

             ## Load file content
             try:
                 file_handler = open(file_requested,'rb')
                 if (request_method == 'GET'):  #only read the file when GET
                     response_content = file_handler.read() # read file content
                 file_handler.close()

                 response_headers = self._gen_headers( 200)

             except Exception as e: #in case file was not found, generate 404 page
                 print ("Warning, file not found. Serving response code 404\n", e)
                 response_headers = self._gen_headers( 404)

                 if (request_method == 'GET'):
                    response_content = b"<html><body><p>Error 404: File not found</p><p>Python HTTP server</p></body></html>"

             server_response =  response_headers.encode() # return headers for GET and HEAD
             if (request_method == 'GET'):
                 server_response +=  response_content  # return additional conten for GET only

             conn.send(server_response)
             print ("Closing connection with client")
             conn.close()

         else:
             print("Unknown HTTP request method:", request_method)

def graceful_shutdown(sig, dummy):
    """ This function shuts down the server. It's triggered
    by SIGINT signal """
    s.shutdown() #shut down the server
    import sys
    sys.exit(1)

###########################################################
# shut down on ctrl+c
signal.signal(signal.SIGINT, graceful_shutdown)

print ("Starting web server")
s = Server(80)  # construct server object
s.activate_server() # aquire the socket

145 ResponsesLeave one →

  1. [url=https://kiva-hack.ru/page/warface/wallhack][img]https://kiva-hack.ru/img/warface/wallhack-warface.png[/img][/url]
    WallHack by KIVA – Это самый новый валлхак на данный момент, который имеется у нас на сайте и он посвящается для прекрасной игры варфейс.

    С помощью этого валлхака вы сможете видеть сквозь любые стены, через двери, ящики, и любые другие предметы, причем дальновидность через стены с этим хаком достаточно велика. Также здесь есть дополнительная функция ЕСП, чтобы не просто знать местонахождение противника, а знать всю информацию о нем, начиная с ника игрока, и продолжая количество жизней и оружием игрока, чтобы знать, что от него можно ожидать.

    Мы тестировали с разных аккаунтов данный валлхак, и остались довольны, поскольку через все текстуры мы видели соперника, да и аккаунт у нас остался без бана, так что его смело можно назвать приватным и можем рекомендовать вам его.

    [url=https://kiva-hack.ru/page/warface/wallhack][img]https://zhack.ru/uploads/monthly_2018_10/5bb65ad8b7de3_kupit-seychas.png.9bf0340f44ce4920411d11ad501d93e4.png[/img][/url]
    [url=https://vk.com/id429531683][img]https://kiva-hack.ru/img/contact/1.png[/img][/url]

    Reply
  2. Samotny istnieje jednak kiedy pewnie spelnione wielbiciel [url=http://staregry.xyz]www[/url]
    zupelnym miru i czulosci do polproduktu pierwotnego, skutecznie mimetycznym jego najwieksze zalety, jednakze niepotrafiacym pod reka tym zbalansowac indywidualnych elementow tak, azeby z rownie znaczna skutecznoscia porywac natomiast podniecac. ,,Meh” O co niemiara lepsze odczucie sprawiaja tylko cut-scenki prosto z mostu powiazane z braniem. Ich celem wystawaloby sie wyznaczenie w rzekoma powierzchnia pojedynkow, ktore w praktycznie w najwiekszym stopniu liczacy sie z faktami metoda wykaza, kiedy przed wiekami usilowali nasi przodkowie. Pozadane byloby wspomniec, ze akt z nich przyjelaby takze wazkiego gwoli siebie nurty oraz przyzwyczajenia [url=http://staregry.xyz]www[/url].

    Reply
  3. Я думаю, что Вы ошибаетесь. Давайте обсудим. Пишите мне в PM.


    фуфа смотрел интересные кафе, интересные презентации или [url=http://www.arstech.ru/support/forum/view_profile.php?UID=61054]здесь[/url] комиксы интересные
    [url=http://www.vkmd.ru/communication/forum/user/23488/]источник[/url]
    [url=http://centroptmarket.ru/index.php?option=com_kunena&view=topic&catid=3&id=229113&Itemid=600#229777]тут[/url]
    [url=http://don-bass.biz/forums.php?m=posts&q=262&n=last#bottom]источник[/url]
    [url=http://coffeemag.com.ua/communication/forum/messages/forum4/topic468/message13377/?result=new#message13377]здесь[/url]
    [url=https://julianna.ru/forum.php?PAGE_NAME=profile_view&UID=24521]тут[/url]
    [url=http://www.potolok-stail.ru/forum/messages/forum10/topic413/message4347/?result=new#message4347]на этом сайте[/url]
    [url=http://korners.kiev.ua/communication/forum/user/4502/]по ссылке[/url]
    [url=http://talisman-m.ru/index.php?subaction=userinfo&user=udagede]источник[/url]
    [url=http://chayka.nnov.ru/communication/forum/user/8610/]на этом сайте[/url]
    [url=http://volgaselmash.ru/index.php/forum/profile/userid-14167]там[/url]
    [url=http://trustavia.ru/communication/forum/messages/forum4/topic105/message4654/?result=new#message4654]тут[/url]
    [url=http://takebest.ru/forum/?PAGE_NAME=message&FID=2&TID=584&MID=82733&result=new#message82733]на странице[/url]
    [url=http://tobolsk.ru/forum/user/74624/]источник[/url]
    [url=https://www.polariss.ru/forum/?PAGE_NAME=profile_view&UID=10882]на странице[/url]
    [url=http://almavet.ru/component/kunena/3-razdel-predlozhenij/205033-dokavto?Itemid=0#205033]на странице[/url]

    Reply
  4. Mildredbus

     /  2018/10/25

    [b]фильмы 2018 Агент Джонни Инглиш 3.0 o u v[/b]

    [url=http://qxj.pw/58962][IMG]http://i91.fastpic.ru/big/2018/1004/81/877a241ad7de8d461ac339009c8b1b81.jpg[/IMG][/url]

    [url=http://qxj.pw/58962][b]Смотреть фильм Агент Джонни Инглиш 3.0[/b][/url]
    [url=http://qxj.pw/58962][b][color=red]Смотреть фильм Агент Джонни Инглиш 3.0[/color][/b][/url]
    [url=http://qxj.pw/58962][b][color=green]Смотреть фильм Агент Джонни Инглиш 3.0[/color][/b][/url]

    Фильмы Агент Джонни ИнглишJohnny EnglishJohnny English Reborn (2011)Агент Джонни ИнглишJohnny English StrikesКак скачать фильм?Файл: Агент Джонни Инглиш – Johnny English (2003) BDRip от HQ-ViDEO.torrentСообщить о появлении в хорошем качестве28 Июль 2011 17:38.
    Смотреть бесплатно в онлайн кинотеатрефильмы Агент ДжонниАгент Джонни ИнглишJohnny English Strikes Again (2018)С Богами: Последние 49 днейSingwa hamkke: ingwa yeon (2018)ОнлайнКинотеатр- новинки кино 2018,2017,2016 смотреть бесплатно в хорошем качестве hd 720
    Агент Джонни Инглиш(2018). Видео: трейлеры В кино с 20 сентября 2018 года. АгентВ Сети появился трейлер фильма Они не состарятся.
    Смотреть фильмы онлайн сегодня практично.Агент Джонни Инглиш Johnny English Strikes Again (2018). БезумиеFrenzyВремя: 01:24:50.
    Агент Джонни Инглиш— нечто среднее между 1-й и 2-й частью франшизы.Боевой эпик от режиссера фильмов Герой и Дом летающихрежиссер Дженнифер Кент Убийство, режиссер Синья Цукамото, 6 9 2018за выдающиеся художественные достижения в области киноискусства.
    Премьера Фильма Агент Джонни Инглишв Беларуси. Афиша показов кино в2018, Великобритания, Франция, США, В прокате до 10 октября Нравится фильм?Все фильмы онлайнГость 2 дня назад в 17:20 10.
    Возрастное ограничение: 12+ (для лиц старше 12 лет). Продолжительность: 89. Сеансы 2DАгент Джонни Инглиш . Страна: Великобритания
    Онлайн Кинотеатр Топ фильм онлайн, рекомендуем смотреть бесплатно фильмы боевики онлайн в хорошем качестве.0 42. Последняя миссия Смотреть онлайн. HDRip 25-09-2018, 20:23Новинка 2018 года приключенческий, комедийный боевик Агент Джонни Инглишфильм смотреть онлайн
    Агент Джонни Инглиш20 сентября, 11:2510. 11. 12. 13. 14. 15. 16. 17. 18. 19. 2. 3. 4. 5. 6. 7. 8. 9. 1. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 2. 3. 4. 5. 6. 7.
    Агент Джонни Инглишсмотреть онлайн Располневшая 35-летняя Энн Хэтэуэй жестко пресекла критику своей фигуры. Новости партнеров.
    Агент Джонни Инглиш2018 торрент D Агент Джонни Инглиш2018 фильм смотреть онлайн M смотреть кино Агент Джонни Инглиш2018 a
    Sep 22, 2018 – 14 min Б. Юлин. Вехи русской историиПроклятие монахини, Лондонские поля,Агент Джонни ИнглишДмитрий Пучков и Клим Жуков про
    Агент Джонни Инглишв кино. Билеты Джонни Инглиш готов взболтать свой коктейль не по-детски уморительными шутками.Сеансы от 99 .

    Кинокрад смотреть онлайн Фильмы 2018Агент Джонни Инглиш 3.0 2018. Агент Джонни Инглиш 3.0 2018. Оставить комментарий. Качество: Оригинальное название: Johnny English Strikes Again. Жанр: комедия, приключения, боевик. Год: 2018. Страна: Великобритания, Франция, США. Продолжительность: 86 мин.
    Этот агент найдет все улики, которых даже не существует, и сумеет обезвредить самых гениальных преступников! Джонни Инглиш готов взболтать свой коктейль не по-детски уморительными шутками. Премьера: 20 сентября 2018. Трейлер. Развлечения. Кинотеатр КИНОПАРК2018. Расписание. Скоро. О кинотеатре. Цены. Развлечения. Контакты. Разработка сайта: СИРЕНА AGENCY. Уточнить расписание сеансов и забронировать билеты Вы можете по телефону: 8(48336)2-72-22.
    Агент Джонни Инглиш 3.0 Обзор Трейлер 2 на русском. 02:08. 23-Агент Джонни Инглиш 2 – Перезагрузка 2011. 02:33. Агент Джонни Инглиш 3.0 — Русский трейлер (2018). 1:26:08. Два Нуля. 00:31. АГЕНТ ДЖОННИ ИНГЛИШ 3.0в кино с 20 сентября. 1:23:05. Агент Джонни Инглиш-1. 1:23:05. Агeht Джohhи Иhглиш. 00:49. Агент Джони Инглиш 3 – соблюдайте тишину. 1:27:39.
    Файл: Агент Джонни Инглиш – Johnny English (2003) HDTVRip.torrent Формат: AVI Видео кодек: Xvi D Аудио кодек: AC3 Видео: 720×400 (1.80:1),fps, XviD build 50 1544 kbps avg,bitpixel Аудио: Аудио 1: Russian 48 kHz, AC3 Dolby Digital, 32 (L,C,R,l,r) + LFE ch,kbps avg Аудио. 2: English 48 kHz, AC3 Dolby Digital, 32 (L,C,R,l,r) + LFE ch,kbps avg Перевод Сообщить о появлении в хорошем качестве. Субтитры. + Субтитры Подробнее.
    Скачать фильм Агент Джонни Инглиш через торрент бесплантно в хорошем качестве Описание: История самого некомпетентного и недалекого Британского дипломата, которого только можно представить, которого ошибочно принимают
    Johnny English Strikes Again. Kino-monster:(3). КП:(1066) На нашем сайте, Вы можете смотреть фильм Агент Джонни Инглиш 3.0 (2018) онлайн на мобильных телефонах и планшетах (андроид, айфон и айпад), без регистрации и смс в хорошем hd 720, 1080 качестве бесплатно. Также, делитесь незабываемыми впечатлениями от просмотра с друзьями и близкими в социальных сетях и комментариях.
    blu ray фильмы Агент Джонни Инглиш на Более 5000 Blu-Ray фильмов Каталог фильмов в xls View this message in English. Текущий язык просмотра YouTube: Русский. Выбрать другой язык можно в списке ниже. Learn more. You’re viewing YouTube in Russian. You can change this preference below. Закрыть.
    Агент Джонни Инглиш 3.0. Дата выхода: 20 сентября 2018. Оригинальное название: Johnny English Strikes Again. Дистрибьютор: Universal Pictures Россия. Жанр: боевик, комедия, приключения Джонни Инглиш готов взболтать свой коктейль не по-детски уморительными шутками. Трейлер.
    Агент Джонни Инглиш 3.0 (2018) смотреть онлайн фильм в HD. Johnny English Strikes Again. cheloveknevozmozhnyy. 1 Главный герой бывший агент секретной службы МИ-7, по имени Джонни Инглиш. Он уже много лет как отошел от дел и теперь работает простым школьным учителем. Но его спокойной жизни приходит конец, когда один хитроумный хакер взламывает систему безопасности Британской разведки и рассекречивает всех агентов Но по предварительной информации его премьера запланирована на 20 сентября 2018. Агент Джонни Инглиш 3.0 (2018) смотреть онлайн бесплатно фильм в HD 1080. Теги: Скорее всего Вы ищите Агент Джонни Инглиш 3.0 (2018) в хорошем качестве.
    +7 (3494) 91-50-01. Афиша. Зрителям. Акции. Кинотеатр. Новости. О кинотеатре. Рекламодателям. Контакты. Агент Джонни Инглиш 3.0. боевик, комедия, приключения 12+. Ближайший сеанс через 2 часа Агент Джонни Инглиш 3.0. боевик, комедия, приключения 12+. Сегодня.

    Релевантные слова:
    кино Агент Джонни Инглиш 3.0 смотреть онлайн
    Агент Джонни Инглиш 3.0 трейлер
    Агент Джонни Инглиш 3.0 скачать торрент
    кино Агент Джонни Инглиш 3.0 2018 смотреть онлайн
    Агент Джонни Инглиш 3.0 2018 онлайн
    гугл Агент Джонни Инглиш 3.0
    Агент Джонни Инглиш 3.0 онлайн 2018

    Также рекомендуем к просмотру:

    .

    Reply
  5. Очень полезный вопрос


    я ожидала лучшего интересные романы, телешоу интересные а также [url=http://www.rometransfersairport.com/blog/ygeju.html]на странице[/url] вирусы интересные
    [url=http://jonick.ru/forum/thread65352.html#66780]продолжение[/url]
    [url=http://forum.ventrilo.com/member.php?u=469063]здесь[/url]
    [url=http://www.alt-market.com/social/24342-ygebece/profile]сайт[/url]
    [url=http://www.folsomliving.com/userinfo.php?uid=16458]там[/url]
    [url=http://xn--059-eddot8cge.xn--p1ai/forum/messages/forum2/topic718/message1758/?result=new#message1758]тут[/url]
    [url=http://www.galax.by/forum/thread142863.html#265055]продолжение[/url]
    [url=http://siamsi.ru/communication/forum/messages/forum4/topic145/message4254/?result=new#message4254]на этом сайте[/url]
    [url=http://forum.teamspeak.com/member.php?u=382940]источник[/url]
    [url=http://eirc-rostov.ru/forum/view_profile.php?UID=20119]там[/url]
    [url=https://worldtravel-sev.kiev.ua/index.php/component/kunena/nulla-consectetur-augue-non-felis-scelerisque-a-feugiat-turpis/6712-skupka-zolota#6738]продолжение[/url]

    Reply
  6. [url=https://top.girls-nsk.ru]Проститутки Новосибирска[/url]
    [url=https://www.girls-nsk.ru/individuals/1000-rubley/]проститутки Новосибирска[/url]
    [url=http://www.prostitutki-krasnodar.ru]Шлюхи Краснодара[/url]
    [url=http://www.prostitutki-krasnodar.ru/individuals/]Индивидуалки Краснодара[/url]
    [url=http://www.prostitutki-krasnodar.ru/massage-salons/]Массажные салоны Краснодара[/url]
    [url=http://www.prostitutki-krasnodar.ru/individuals/vyezd/]Выезд шлюхи в Краснодаре[/url]
    [url=http://www.prostitutki-krasnodar.ru/individuals/1000-rubley/]проститутки Краснодара[/url]
    [url=http://www.prostitutki-krasnodar.ru/znakomstva/]Секс знакомства Краснодара[/url]
    [url=http://prostitutki-irkutska.ru]Проститутки Иркутск[/url]
    [url=http://prostitutki-irkutska.ru/individuals/1000-rubley/]проститутки Иркутск[/url]
    [url=http://prostitutki-perm.ru]Досуг Перьми[/url]
    [url=http://prostitutki-perm.ru/individuals/1000-rubley/]проститутки Перьми[/url]
    [url=http://www.girls-kzn.mobi]Проститутки Казань[/url]
    [url=http://fei.girls-kzn.mobi/individuals/]Индивидуалки Казань[/url]
    [url=http://girls-kzn.mobi/znakomstva/]Секс знакомства Казань[/url]
    [url=https://fei.girls-kzn.mobi/individuals/1000-rubley/]проститутки Казани[/url]
    [url=http://penza-dosug.ru]Проститутки Пенза[/url]
    [url=http://penza-dosug.ru/individuals/1000-rubley/]проститутки Пензы[/url]
    [url=http://girls-ufa.ru]Шлюхи Уфы[/url]
    [url=http://girls-ufa.ru/individuals/1000-rubley/]проститутки Уфа[/url]
    [url=http://girls-msk.ru]Шлюхи Москва[/url]
    [url=http://girls-msk.ru/individuals/1000-rubley/]проститутки Москва[/url]
    [url=http://dosugspb24.ru]Шлюхи Питер[/url]
    [url=http://dosugspb24.ru/individuals/1000-rubley/]проститутки Питера[/url]
    [url=http://fei.girls-nsk.mobi]проститутки Новосибирска[/url]
    [url=http://fei.girls-nsk.mobi/individuals/1000-rubley/]проститутки Новосибирска[/url]
    [url=https://ero.girls-nsk.me]проститутки Новосибирска[/url]
    [url=https://www.girls-nsk.me/individuals/1000-rubley/]проститутки Новосибирска[/url]

    Reply
  7. В этом что-то есть. Раньше я думал иначе, благодарю за информацию.


    Супер клас!!! fifa 15 2016 2017 скачать торрент, fifa 15 скачать торрент pc без таблетки и [url=http://15fifa.ru/skachat-kljuchi-fifa-15/33-skachat-fifa-15-crack-kryak-tabletka-klyuch-besplatno.html]фифа 15 кряк скачать[/url] fifa 15 скачать бесплатно полная версия

    Reply
  8. [url=https://top.girls-nsk.ru]Проститутки Новосибирска[/url]
    [url=https://www.girls-nsk.ru/individuals/1000-rubley/]проститутки Новосибирска[/url]
    [url=http://www.prostitutki-krasnodar.ru]Проститутки в Краснодаре[/url]
    [url=http://prostitutki-krasnodar.ru/individuals/]Индивидуалки в Краснодаре[/url]
    [url=https://www.prostitutki-krasnodar.ru/massage-salons/]Массажные салоны в Краснодаре[/url]
    [url=https://prostitutki-krasnodar.ru/individuals/vyezd/]Выезд блядей в Краснодаре[/url]
    [url=http://prostitutki-krasnodar.ru/individuals/1000-rubley/]проститутки Краснодара[/url]
    [url=http://www.prostitutki-krasnodar.ru/znakomstva/]Секс знакомства в Краснодаре[/url]
    [url=http://prostitutki-irkutska.ru]Шлюхи Иркутска[/url]
    [url=http://www.prostitutki-irkutska.ru/individuals/1000-rubley/]проститутки Иркутск[/url]
    [url=http://prostitutki-perm.ru]Досуг Перьми[/url]
    [url=http://www.prostitutki-perm.ru/individuals/1000-rubley/]проститутки Пермь[/url]
    [url=http://www.girls-kzn.mobi]Шлюхи Казань[/url]
    [url=http://fei.girls-kzn.mobi/individuals/]Индивидуалки Казани[/url]
    [url=http://girls-kzn.mobi/znakomstva/]Секс знакомства Казань[/url]
    [url=https://fei.girls-kzn.mobi/individuals/1000-rubley/]проститутки Казани[/url]
    [url=http://penza-dosug.ru]Проститутки Пенза[/url]
    [url=http://www.penza-dosug.ru/individuals/1000-rubley/]проститутки Пензы[/url]
    [url=http://girls-ufa.ru]Проститутки Уфы[/url]
    [url=http://www.girls-ufa.ru/individuals/1000-rubley/]проститутки Уфа[/url]
    [url=http://girls-msk.ru]Проститутки Москва[/url]
    [url=http://www.girls-msk.ru/individuals/1000-rubley/]проститутки Москвы[/url]
    [url=http://dosugspb24.ru]Проститутки Питера[/url]
    [url=http://www.dosugspb24.ru/individuals/1000-rubley/]проститутки Питер[/url]
    [url=http://fei.girls-nsk.mobi]проститутки Новосибирска[/url]
    [url=http://fei.girls-nsk.mobi/individuals/1000-rubley/]проститутки Новосибирска[/url]
    [url=https://ero.girls-nsk.me]проститутки Новосибирска[/url]
    [url=https://www.girls-nsk.me/individuals/1000-rubley/]проститутки Новосибирска[/url]

    Reply
  9. Последние строительные новости здесь [url=http://zamet.ru/]zamet.ru[/url]

    Reply
  10. Доброго времени суток дамы и господа!
    1)[url=https://skytent.by/]билборд минск[/url] -Рекламные щиты ( билборды ) в Беларуси – самый востребованный тип наружной рекламы, размещаемый в непосредственной близости от автомобильных дорог.
    2)[url=https://skytent.by/]металлоконструкции минск[/url] -Весьма значимыми и присущими для любой постройки элементами являются металлические навесы, которые как нельзя лучше защищают от осадков или падающей листвы.
    3)[url=https://skytent.by/]тенты минск[/url] -Изготовление тентов и использование в быту или на производстве тентовых конструкций – кратчайший способ быстрого сооружения необходимого помещения или дополнения уже имеющегося.
    4)[url=https://skytent.by/]тентовая торговая палатка минск[/url] -Это одна из актуальнейших конструкций, распространенных по бесчисленному количеству городов и поселков.
    [url=https://skytent.by/]демонтаж металлических ограждений[/url]
    [url=https://skytent.by/]лазерная резка и гибка металла[/url]
    [url=https://skytent.by/]виды билбордов[/url]
    [url=https://skytent.by/]навес на участке[/url]
    [url=https://skytent.by/]делаем рекламные щиты[/url]

    Reply
  11. Привет друзья!
    1)[url=https://skytent.by/]билборд минск[/url] -Рекламные щиты ( билборды ) в Беларуси – самый востребованный тип наружной рекламы, размещаемый в непосредственной близости от автомобильных дорог.
    2)[url=https://skytent.by/]металлоконструкции минск[/url] -Весьма значимыми и присущими для любой постройки элементами являются металлические навесы, которые как нельзя лучше защищают от осадков или падающей листвы.
    3)[url=https://skytent.by/]тенты минск[/url] -Изготовление тентов и использование в быту или на производстве тентовых конструкций – кратчайший способ быстрого сооружения необходимого помещения или дополнения уже имеющегося.
    4)[url=https://skytent.by/]тентовая торговая палатка минск[/url] -Это одна из актуальнейших конструкций, распространенных по бесчисленному количеству городов и поселков.
    [url=https://skytent.by/]доска почета города[/url]
    [url=https://skytent.by/]пластиковый навес[/url]
    [url=https://skytent.by/]беседка садовая металлическая купить[/url]
    [url=https://skytent.by/]торговый павильон гомель[/url]
    [url=https://skytent.by/]рекламный щит 3х6[/url]

    Reply
  12. Приветствую Вас дамы и господа!
    1)[url=https://skytent.by/]билборд минск[/url] -Рекламные щиты ( билборды ) в Беларуси – самый востребованный тип наружной рекламы, размещаемый в непосредственной близости от автомобильных дорог.
    2)[url=https://skytent.by/]металлоконструкции минск[/url] -Весьма значимыми и присущими для любой постройки элементами являются металлические навесы, которые как нельзя лучше защищают от осадков или падающей листвы.
    3)[url=https://skytent.by/]тенты минск[/url] -Изготовление тентов и использование в быту или на производстве тентовых конструкций – кратчайший способ быстрого сооружения необходимого помещения или дополнения уже имеющегося.
    4)[url=https://skytent.by/]тентовая торговая палатка минск[/url] -Это одна из актуальнейших конструкций, распространенных по бесчисленному количеству городов и поселков.
    [url=https://skytent.by/]изготовление навесов из труб[/url]
    [url=https://skytent.by/]металлические каркасы световых букв[/url]
    [url=https://skytent.by/]тент на грузовое авто[/url]
    [url=https://skytent.by/]навесы из поликарбоната в бобруйске[/url]
    [url=https://skytent.by/]тент брезент[/url]

    Reply
  13. Последние женские секретики здесь [url=http://www.foto-volos.ru/]www.foto-volos.ru[/url]

    Reply
  14. Последние строительные советы здесь [url=http://495realty.ru/]495realty.ru[/url]

    Reply
  15. Согласен, эта отличная мысль придется как раз кстати


    Чтобы не сказать больше. escort avrupa, videos escort или [url=https://www.gasfriocalor.com/component/k2/itemlist/user/48795]here[/url] ibiza escort
    [url=http://yjhani.inplus21.com/xe2/?mid=collect&document_srl=1341686]here[/url]
    [url=http://www.giovaniconnection.it/index.php?option=com_k2&view=itemlist&task=user&id=4105837]here[/url]
    [url=http://www.betoncentralen.gl/UserProfile/tabid/61/userId/219357/Default.aspx]here[/url]
    [url=http://circuitopop.com/userinfo.php?uid=9610]here[/url]
    [url=http://www.centrosubmurena.com/index.php?option=com_k2&view=itemlist&task=user&id=953404]here[/url]
    [url=http://sepapoudat.com/forums/topic/escort-dubai/]here[/url]
    [url=http://building-design-construction.com/index.php?option=com_k2&view=itemlist&task=user&id=358829]here[/url]
    [url=http://myarbitr.com/users/aziwilyq]here[/url]
    [url=http://www.articleuploads.com/index.php?option=com_k2&view=itemlist&task=user&id=543843]here[/url]
    [url=http://cottoncandylover.com/index.php?option=com_k2&view=itemlist&task=user&id=986528]here[/url]
    [url=http://forum.brosephs.org/viewtopic.php?f=6&t=116]here[/url]
    [url=http://teatini.it/index.php?option=com_k2&view=itemlist&task=user&id=167389]here[/url]
    [url=http://vietnamveterans.us/index.php?option=com_k2&view=itemlist&task=user&id=349093]here[/url]
    [url=http://www.sapeanchai.ac.th/modules.php?name=Your_Account&op=userinfo&username=eqosura]here[/url]
    [url=https://domvsochi.net/forum/messages/forum8/message3120/645-escort-dubai?result=new#message3120]here[/url]

    Reply
  16. Утро вечера мудренее.


    Извините, что я вмешиваюсь, но не могли бы Вы дать немного больше информации. толстушки видео порно, видео домашние порно или [url=http://droid-apps.ru/user/ephfotice/]здесь[/url] порно массаж видео
    [url=http://sdek.a25.ru/shop/mobil_naya_svyaz/telefony_gsm/fy_push888/#comments]продолжение[/url]
    [url=http://gestalt.dp.ua/user/ephfowed/]продолжение[/url]
    [url=http://hdmspb.ru/shop/televizory/cvetnye_televizory/sovet_tc1/#comments]здесь[/url]
    [url=http://resurs.mruo.ru/news/34-kruglyy-stol.html]тут[/url]
    [url=http://nifnif.info/user/ephfosl/]продолжение[/url]
    [url=http://igrayonline.org/user/ephfoMOSE/]тут[/url]
    [url=http://zasvety.net/user/ephfoPa/]здесь[/url]
    [url=http://mineglow.besaba.com/user/ephfohip/]на странице[/url]
    [url=http://sdek.a25.ru/shop/audiotehnika/pleery/plaer_n78/#comments]по ссылке[/url]
    [url=http://oneddl.org/user/ephfoboom/]на этом сайте[/url]
    [url=http://autodrive.ya1.ru/test-drayv/761-subaru-outback-vse-na-miting.html]тут[/url]
    [url=http://stroylider.ru/novosti-magazina/vibrofleks--wave--novoe-slovo-v-shumoizolyatsii/#comment35364]по ссылке[/url]
    [url=http://politicum.info/ekonomika/1789-sostoyanie-vodnyh-resursov-v-ukraine.html#comment]тут[/url]
    [url=http://klassminecraft.esy.es/user/ephfogypE/]на странице[/url]
    [url=http://mega-warez.cba.pl/user/ephfoTORS/]там[/url]

    Reply
  17. [url=http://mysite.ru/]http://mysite.ru/[/url]

    Reply
  18. Последние мировые новости здесь [url=http://www.planetoday.ru/]www.planetoday.ru[/url]

    Reply
  19. )))))))))) я вам не могу поверить :)


    всё людям))) интересное сочинение, интересные или [url=http://coffeemag.com.ua/communication/forum/messages/forum3/topic359/message8093/?result=new#message8093]здесь[/url] викторина интересная
    [url=http://freeadrussia.ru/blog/user/name/iwyvite/.html]по ссылке[/url]
    [url=http://velikayaborba.ru/forum/?PAGE_NAME=profile_view&UID=3199]там[/url]
    [url=http://kiosk.magkmusic.com/forum/joomla-templates/16-more-sovetov#16]источник[/url]
    [url=http://coremission.net/topic/%d0%bc%d0%be%d1%80%d0%b5-%d1%81%d0%be%d0%b2%d0%b5%d1%82%d0%be%d0%b2/]тут[/url]
    [url=http://xn--b1amnebsh.pw/forum/user/1306-ufixylu]сайт[/url]
    [url=http://ima.aragua.gob.ve/index.php?option=com_k2&view=itemlist&task=user&id=1196017]источник[/url]
    [url=http://www.servicexp.com.ua/blog/ruslan.html]на странице[/url]
    [url=http://www.libertykeeper.net.ua/forum/profile.php?action=show&member=10923]на странице[/url]
    [url=http://www.ubuntuchristianity.co.za/index.php?option=com_kunena&view=topic&catid=3&id=1904&Itemid=151]на странице[/url]
    [url=http://www.sga-bms.ru/support/forum/view_profile.php?UID=32384]там[/url]
    [url=http://nfis.com.ph/index.php/component/kunena/2-welcome-mat/150969?Itemid=0#150969]здесь[/url]
    [url=http://torgi.imc-bel.ru/forum/messages/forum1/topic224/message229/?result=new#message229]на странице[/url]
    [url=http://xn----7sbdn4bl8b.xn--p1ai/index.php?option=com_k2&view=itemlist&task=user&id=6125]там[/url]
    [url=https://medicalmarijuana.co.uk/forums/users/igyvoqid/]источник[/url]
    [url=http://www.amanda.radom.net/modules.php?name=Your_Account&op=userinfo&username=ojode]по ссылке[/url]

    Reply
  20. Последние новости Армении здесь [url=http://lratvakan.com/]lratvakan.com[/url]

    Reply

Leave a Reply