Вверх ↑
Этот топик читают: Гость
Ответов: 8
Рейтинг: 0
#1: 2016-02-08 15:54:48 ЛС | профиль | цитата
Ребятки, давненько писал программку, которая обрабатывает пакет и отправляет его с моими данными,
пакет "TCP server ". Так вот, раньше всё отлично работало, я с лёгкостью пробивал IP ресурса и подставлял в запрос этот IP.
На данный момент, я столкнулся с такой трудностью, что все, мне знакомые ресурсы, когда заходишь
не
domen.ru, потом, например банально пингуем сайт или пробиваем через who.is или 2ip.ru, узнаём его IP. он выдаёт 90.90.90.90
вбиваем IP в строке браузера и вуаля, он выдаёт страницу с сервера с тех.информацией. Тех поддержка, не отвечает на поставленные вопросы, как сделать так, что бы вбивая
1)domen.ru и 2)90.90.90.90 выдавало одно и то же.

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

я так думал, что выделенный IP купить, даже покупал (уже не помню на каком ресурсе), там был выделенный IP, либо меня обманули, либо он был выделенный, но по итогам это не работает. результат один и тот же, но IP был статический.

Я знаю одно, что если найти IP ресурса ya.ru и пройти по нему в браузере через 80 порт, то выдаёт одно и то же

Вопрос в следующем, как мне осуществить отправку пакетов с данными используя пакет TCP сервер или TCP client, зная только доменное имя "domen.ru", без обращений к IP? или есть альтернативный способ? заставить отправлять программу пакеты?
неужели никто не сталкивался?
карма: 1

0
vip
#1.1контекстная реклама от партнеров
Ответов: 655
Рейтинг: 18
#2: 2016-02-08 17:17:21 ЛС | профиль | цитата
отправку данных при помощи каких-либо пакетов TCP сервер, сам понял что спросил?

Что значит выдавало одно и тоже?
карма: 0

0
Ответов: 8
Рейтинг: 0
#3: 2016-02-08 17:46:22 ЛС | профиль | цитата
Gunnman писал(а):


Что значит выдавало одно и тоже?


при обращении в брайзерной строке по адресу " ya.ru" выдаёт страницу сайта
если обнаружить его IP адрес, то мы узнаем его 213.180.204.3
если так же обратиться в брайзерной строке по адресу 213.180.204.3, он выдаёт страницу сайта.


В общем, я сильно углубляюсь, мне нужно чтобы работал TCP сервер и я мог обычные сформированные пакеты обрабатывать с пометкой
"OK"

карма: 1

0
Ответов: 655
Рейтинг: 18
#4: 2016-02-08 18:13:39 ЛС | профиль | цитата
Так...что должна твоя программа получать при запросе к сайту? Страницу? Какие-то данные?
карма: 0

0
Ответов: 4621
Рейтинг: 746
#5: 2016-02-08 18:42:40 ЛС | профиль | цитата
gost_gost писал(а):
сделать так, что бы вбивая
1)domen.ru и 2)90.90.90.90 выдавало одно и то же.
Это зависит от сервера. Если на сервере 90.90.90.90 размещено много сайтов (например, хостинг), то для того, чтобы сервер знал какому именно сайту предназначается запрос, в запросе нужно указать заголовок
Host: domen.ru

И отправить его на IP для domen.ru. Для приватных серверов, на которых только один сайт, запрос может выполняться корректно и без этого заголовка.
Если такой заголовок не указан, то сервер и выдаёт в ответ служебную страницу.
карма: 26

0
Ответов: 8
Рейтинг: 0
#6: 2016-02-08 23:04:49 ЛС | профиль | цитата
сейчас зарегаю сайт, проверим, у меня запрос такого типа:

POST http://domen.ru/set.php HTTP/1.1
Host: domen.ru
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:35.0) Gecko/20100101 Firefox/35.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 999

set.php?$set=hello


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



------------ Дoбавленo в 18.58:
Gunnman писал(а):
Так...что должна твоя программа получать при запросе к сайту? Страницу? Какие-то данные?


в общем, есть страница на сайте set.php
она принимает данные через переменную set, скрипт на php банально всё сохраняет в текстовый файл на сервере, все что отправили.

Ранее работало, решил покопаться в хиасме, интересно, сейчас не работает , мир изменился
------------ Дoбавленo в 22.29:
ребята зарегал и создал файлик
есть страница http://testdom.hhos.ru.s5.hhos.ru/?set=ТЕКСТ

которая сохраняет текст в файле http://testdom.hhos.ru.s5.hhos.ru/test.txt

его ИП после пинга - 5.9.89.100


карма: 1

0
Ответов: 4621
Рейтинг: 746
#7: 2016-02-09 11:30:23 ЛС | профиль | цитата
gost_gost писал(а):
POST http://domen.ru/set.php HTTP/1.1
...
set.php?$set=hello

Правильно писать:
POST /set.php HTTP/1.1
...
set=hello&field1=val1&field2=val2 ...

И с TCP_Client - лучше Connection: close

А вообще, используй HTTPClient

карма: 26

0
Гость
Ответов: 17029
Рейтинг: 0
#8: 2016-02-09 13:13:31 правка | ЛС | профиль | цитата


Редактировалось 6 раз(а), последний 2021-06-24 08:11:32
карма: 0

0
Ответов: 8
Рейтинг: 0
#9: 2016-02-09 22:28:09 ЛС | профиль | цитата
Что я делаю не так, выдает HTTP Нот фоунд
адрес сайта с переменной: http://testdom.hhos.ru.s5.hhos.ru/?set=testhiasm
code_36929.txt
------------ Дoбавленo в 21.52:
http client вообще не работает)) всё залил на тот же сервер...
да уж...
карма: 1

0
файлы: 1code_36929.txt [1.6KB] [453]
Ответов: 4621
Рейтинг: 746
#10: 2016-02-10 11:13:06 ЛС | профиль | цитата
Потому что страницы set.php нет на том сервере.
карма: 26

0
Ответов: 8
Рейтинг: 0
#11: 2016-02-11 17:21:48 ЛС | профиль | цитата
Прошу прощения, правильно будет так:

code_36933.txt

Дома как буду протестирую, но что-то сомнения меня берут)
карма: 1

0
файлы: 1code_36933.txt [1.6KB] [500]
Ответов: 4621
Рейтинг: 746
#12: 2016-02-11 17:43:56 ЛС | профиль | цитата
А Content-Length что, от фонаря ставил? Должен быть правильным.
А поскольку у тебя Accept-Encoding: gzip, deflate, то после приёма ответ нужно будет распаковать. Когда ты сразу подаешь ответ на Label, он не может быть отображен: Label отображает только печатаемые символы и то до первого байта 0. Хотя бы в Hex сконвертируй, чтобы увидеть, что приходит.

gost_gost писал(а):
http client вообще не работает))
Всё там работает:

Add(MainForm,2953706,21,105)
{
Width=515
Height=547
}
Add(Button,2001906,70,315)
{
Left=345
Top=15
Caption="ok"
link(onClick,14543704:doLoadString,[])
}
Add(Edit,3410658,133,238)
{
Left=15
Top=15
Width=295
Text="http://testdom.hhos.ru.s5.hhos.ru"
}
Add(HTTPClient,14543704,133,315)
{
Method=1
EncType=1
PostData="set=hello"
Point(RawHeaders)
link(URL,3410658:Text,[])
link(onHeadersAvail,3250242:doData,[])
link(onFinish,3673276:doText,[(207,328)(207,394)])
AddHint(65,-65,57,13,PostData)
AddHint(-23,54,44,13,Method)
}
Add(Memo,10869141,308,294)
{
Left=15
Top=45
Width=480
Height=160
ScrollBars=3
}
Add(Memo,3673276,232,367)
{
Left=15
Top=225
Width=480
Height=275
ScrollBars=3
}
Add(DoData,3250242,224,315)
{
link(onEventData,10869141:doText,[])
link(Data,14543704:RawHeaders,[(230,303)(183,303)(183,361)(160,361)])
}
карма: 26

1
Голосовали:gost_gost
Ответов: 8
Рейтинг: 0
#13: 2016-02-12 08:57:32 ЛС | профиль | цитата
Ура
в общем, последняя моя версия замечательно работает. та что выше )))) на tcp client
не хочется углубляться в http client )) спасибо за поправки )
------------ Дoбавленo в 08.21:
Принцип работы TCP client

Ребята, всё конечно замечательно, единственное
не пойму как он работает, в том смысле, что
если вписывать в строку
1111 - отправить
2222 - отправить
3333 - отправить
4444 - отправить
5555 - отправить

с разницей в пару секунд, ну например 5-10
то в итоге вижу, что пришло 11, 33, 55
как -то странно

не подскажите принцип работы.
в программе надо прям сразу "создавать подключение" к серверу?
и потом просто кнопкой "отправить" отправлять пакеты? будет ли программа постоянно держать подключение?

или наоборот, каждый ра при нажатии кнопки "отправить" надо 1)сразу же создать подключение 2)отправить его 3)потом закрыть соединение и так каждый раз?

как лучше будет?
не нравится что половину пакетов не приходит.
карма: 1

0
Ответов: 4621
Рейтинг: 746
#14: 2016-02-12 12:12:11 ЛС | профиль | цитата
Если Connection: close, то нужно отключаться, если Connection: keep-alive, то в одном соединении можно выполнять несколько запросов. Насколько долго сервер будет держать такое соединение - вероятно, зависит от сервера.
gost_gost писал(а):
не хочется углубляться в http client ))
Ну, зато будешь углубляться почему в TCP_Client при получении большого ответа событие onRead происходит несколько раз, или как отправить на сервер файл больше нескольких десятков мегабайт.
карма: 26

0
Ответов: 8
Рейтинг: 0
#15: 2016-02-12 14:10:58 ЛС | профиль | цитата
даже так? несколько десятков мегабайт мой запрос может весить?)

кстати, а что лучше tcp client или tcp server?
карма: 1

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)