| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Сеть > Socks5 чекинг |
| Автор: alligator 1.9.2005, 23:38 |
| Сабж собственно =)) Подскажите как сделать socks5 чекинг.... Прочитал туториал про socks5 http://codenet.ru/webmast/socks51.php такой вопрос у соксов есть комманды в спецификации написаны запросы как мне выполнить нужный запрос ? не понятно То что надо коннектить через сокеты это понятно вот что нужно записать в сокет и в каком формате нет =(( |
| Автор: Mal Hack 2.9.2005, 16:12 |
| А это не socket_* случаем? |
| Автор: alligator 3.9.2005, 12:19 | ||
| fsockopen открываем подключение на сокс fputs вставляем комманду , у меня есть пример только я незнаю как он работает а мне интересно хочу сделать свой вариант вот пример:
Добавлено @ 12:26 я незнаю через что лучше делать, подскажите пожалуйста? |
| Автор: Mal Hack 3.9.2005, 16:15 |
| Я имел ввиду класс фунций socket_*(); |
| Автор: alligator 3.9.2005, 16:37 |
| Ну да я понял.... что ты это имел ввиду , через эти функции делать ? |
| Автор: Mal Hack 3.9.2005, 18:27 |
| Ага. |
| Автор: alligator 3.9.2005, 22:46 |
| Окей попробуем... |
| Автор: alligator 4.9.2005, 23:01 | ||
| Не хочет ничего выводить =( и оч долго коннектит на сокс , что не есть гуд
|
| Автор: alligator 11.9.2005, 08:57 |
| Ну что ни кто не поможет чтоль (( |
| Автор: Mal Hack 11.9.2005, 09:26 |
| alligator а только с данным сервером? Порт все-таки 80, а не 1080 должен быть. |
| Автор: alligator 11.9.2005, 09:34 |
| Нет именно 1080 ,сокс висит на это порту Добавлено @ 09:34 Пока только с одним для начала хочу реализовать проверку хотябы одного а потом уже можно и цикл сделать |
| Автор: Mal Hack 11.9.2005, 09:39 |
| alligator 1. Проверь он так только с этим хостом работает или с любыми. 2. Виснет именно на коннекте или на чтении? |
| Автор: alligator 11.9.2005, 09:42 | ||||
| На чтении виснет Добавлено @ 09:44
Сокс вроде рабочий если добовляю виснет
|
| Автор: Mal Hack 11.9.2005, 10:00 |
| socket_strerror() че-ть выдает? Попробуй так: $a2 = socket_read ($sopen,1024,PHP_BINARY_READ); ТОлько ты не забывай, что твой код выводит только первый килобайт.... |
| Автор: alligator 11.9.2005, 10:09 | ||
| да я знаю мне для начала нужно посмотреть что он вооще выводит. Ничего не выводит
http://vipartconcert.ru/php/77/t.php |
| Автор: Mal Hack 11.9.2005, 10:11 |
| Так. а на другом IP пробовал? Если он виснет на чтении, значит что-то не так коннектом... Попробуй PHP_NORMAL_READ |
| Автор: alligator 11.9.2005, 10:13 |
| Не могу найти других беспланых соксов (( |
| Автор: alligator 11.9.2005, 10:32 |
| вот вроде нашел рабочий посмотри что возвращает http://vipartconcert.ru/php/77/t.php |
| Автор: alligator 11.9.2005, 10:53 | ||
Сделал так , токо не пойму как ответы разбирать(
выводит: 005b4e8000f0fa7f |
| Автор: Mal Hack 11.9.2005, 11:05 |
| Поставь цикл while и в нем read... |
| Автор: alligator 11.9.2005, 11:38 |
| Что то я не догнал а цикл зачем ? |
| Автор: alligator 11.9.2005, 12:21 |
| Я думаю что наверное нужно послать запрос сначала а потом считывать ответ, допустим делаю так Запрос: 05 02 00 01 где 05 версия протокола ,02 - bind ,00 - RSV зарезервировано , 01 - тип ip адреса тобишь IPv4 как мне перевести требуемый запрос в формат понятный соксику ) можно вроде использовать pack() только я непонял как к ней составлять параметры pack ( string format [, mixed args [, mixed ...]] ) |
| Автор: Mal Hack 11.9.2005, 14:08 | ||
Ну тыже читаешь первые 4096 байт, а остальное как же? |
| Автор: alligator 11.9.2005, 14:54 |
| дык а больше не нужно |
| Автор: nerezus 11.9.2005, 14:55 | ||
Вот кусок моего (nerezus(ICQ 547097), 2005, GPL v.2)
|
| Автор: alligator 11.9.2005, 14:55 |
| кстати если использовать pack("nvc*",05,02,00,01); то нормально будет ? заместо hex2bin ? Добавлено @ 14:56 Да спасибо вот я как раз пытаюсь разобраться с твоим кодом , хочу немного модифицировать его.... |
| Автор: nerezus 11.9.2005, 15:19 |
| hexlen кстати не нужна тут(она при работе с аськой нужна будет) а hex2bin сам знаю, что хреново писана: когда писал, я пхп не зал. |
| Автор: alligator 11.9.2005, 15:36 |
| Поможешь доработать ? |
| Автор: nerezus 11.9.2005, 16:05 | ||
ты это хочешь сделать?
|
| Автор: alligator 11.9.2005, 16:31 |
| Нет зачем у тебя он ищет прокси , а мне нужно чтобы просто список чекал... Добавлено @ 16:36 Я просто хотел усовершенствовать функцию чека чтобы еще версию сокса возвращал |
| Автор: nerezus 11.9.2005, 18:02 |
| Ну обычно сейчас все проксисервера держат и сокс4, и сокс5 =) это относительно версии =) а вобще сделай проверку для сокс4(у мну сокс5). и через обе функции прогоняй =) |
| Автор: alligator 12.9.2005, 13:50 |
| А зачем через 2 функции если допустим можно послать 2 запроса на сокс и посмотреть ответ что вернёт и из этого выводить ответ потипу 1 - сокс5 2 - сокс4 Где можно посмотреть спецификацию протокола сокс4 ?? я хочу еще сделать прокси чек но это легко просто каким нить гет запросом , хотя можно еще сделать проверку анонимный прокси или нет , только незнаю как это реализовать , а вот проверку на то отвечает ли прокс на комманды я знаю.....В В общем какая задача: 1 - проверка сокс5\сокс4 и определение версий удалённых серверов 2 - проверка прокси http\https и определение типа удалённого сервера(как определить http\https) 3 - ну и само сабой вывод результата работы И всё же меня еще мучает такой вопрос через что лучше организовать через : socket_* или fsockopen что быстрее и оптимальнее ? |
| Автор: nerezus 12.9.2005, 21:52 |
| socket_*, ибо неблок. поставишь http://socks.permeo.com/protocol/socks4.protocol http://socks.permeo.com/protocol/socks4a.protocol |
| Автор: user665 8.12.2009, 02:23 |
| А нет не у кого PHP готового скрипта который чекает socks5? |
| Автор: Pfailed 8.12.2009, 18:21 | ||
| Ссылку на rfc1928 на русском уже давали. На самом деле там ничего сложного. Нужно только понимать несколько фундаментаьных вещей: сколько бит в байте, что такое шестнадцетеричная система счисления, для чего нужны функции pack/unpack. В первом приближении подключение к socks5 можно оформить следующим образом:
Далее с возвращенным значением можно работать как с обычным сокетом (если не возвратился false). |
| Автор: krypt3r 21.12.2009, 11:58 | ||
На перле есть только. Для его написания достаточно было инфы с вики и снифера |