Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
culver пишет:
В то же время браузер работает спокойно.
Можно обмануть firewall?
То есть вы пробуете обращаться к соответстующим хостам с одной рабочей станции с помощью браузера и PHP-скрипта - и в первом случае соединение проходит успешно а во втором нет? Можно проверить не используется ли в локальной сети компании свой proxy-сервер через который соединяется браузер - в таком случае и соединения CURL надо запускать через него Также советую вам попробовать огранизовать соединение через fsockopen с указанием конкретного IP-адреса - возьмите заранее IP-адрес какого-нибудь web-сайта и составьте соответствущий запрос на него и посмотрите ошибку - если же такой подход заработает то впоследствии можно определять DNS-имена через консольную утилиту
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
culver
Отправлено: 07 Июля, 2010 - 16:19:24
Новичок
Покинул форум
Сообщений всего: 20
Дата рег-ции: Июль 2010
- выдало ошибку 7 - ошибка доступа к прокси.
Может его не строкой писать?
JustUserR
Отправлено: 08 Июля, 2010 - 01:48:03
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
culver пишет:
Да proxy есть, добавил строку curl_setopt($ch, CURLOPT_PROXY, "10.103.100.1"); - выдало ошибку 7 - ошибка доступа к прокси. Может его не строкой писать?
Для того чтобы решить проблему доступа к удаленном web-серверу из PHP-скрипта с вашей локальной машины - необходимо иметь максимально-полную диагностическую информацию по инфраструктуре вашей сети Если локальная машина не полностью контролируется вами и на ней имеются firewall-ы и другие сетевые утилиты то ситуация усложняется - иначе однозначно можно сэмулировать работу браузера Будем полагать что локальный firewall если он и присутствует то не запрещает отправку исходящих соединений от PHP-скрипта - в таком случае для успешной работы нужно инициализировать требуемое соединение в точности также как и браузер Хотя proxy-сервер может требовать авторизации на нем и таким образом генерировать ошибку доступа - но скорее всего дело не в этой опции поскольку бы браузер при первом посещении определенного сайта также бы требовал имя пользователя и пароль
Важно заметить что по идее даже при наличии HTTP-proxy браузер сам должен распознавать DNS-имена - хотя бы по тем причинам что адрес proxy также может быть задан доменным именем а также для возможности использовать локальных имен Может быть к примеру такая ситуация когда на вашей локальной машине настроено разграничене прав доступа и процесс PHP не может получить доступ к системной службе DNS-имен - в таком случае полезно проверить значение возвращаемое при запуске консолькой команды nslookup с приведенными ранее параметрами а также попробовать отправить запрос по конкретному IP-адресу
Таким образом судя по приведенным обстоятельствам проблема заключается в запрете исходищих соединений от процесса PHP - это может быть следствием работы локального firewall-а для которого следует добавить соответствующий процесс в список исключений Возможна и более сложная ситуация например в том случае если ваша сеть поддерживает динамическую маршрутизацию типа RIP - и простые сетевые запросы через WAN-шлюз на ней заведомо не работают - но для начала следует рассмотреть более простые варианты и произвести дополнительную указанную диагностику
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
culver
Отправлено: 08 Июля, 2010 - 13:34:40
Новичок
Покинул форум
Сообщений всего: 20
Дата рег-ции: Июль 2010
Помог: 0 раз(а)
nslookup сервер не находит ни по адресу ни по названию.
Такие вариации:
тоже ни к чему не привели.
Локально стоит только KIS 8, его отключение не помогло.
Куда дальше копать - не знаю.
JustUserR
Отправлено: 09 Июля, 2010 - 02:55:36
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
culver пишет:
nslookup сервер не находит ни по адресу ни по названию
Видимо локальная сеть с NAT-механизмом в вашей огранизации не настроена или блокируется firewall-ом на соответствующем шлюзе или маршрутизаторах - поэтому нужно искать способ который точно копирует проведение HTTP-запроса как и ваш браузер Таким образом ваша задача продиагностировать работу браузера - для этого во-первых можно сделать запрос на какой-нибудь web-сервер и посмотреть информацию в команде netstat -ab для определения реального сетевого адреса с которым связыватся браузер - во-вторых можно попробовать уточнить какой именно тип proxy-сервера используется в сети поскольку это может быть и обычный HTTP и SOCKS5 - для проверки можно обратиться через telnet по IP-адресу и порту соответствующего proxy и проверить результат соединения
culver пишет:
Локально стоит только KIS 8, его отключение не помогло.
Еще имеется обычный windows firewall который также может блокировать различные соединения и приложение - проверьте чтобы в нем ваш локальный процесс отвечающий за интерпретацию PHP-скриптов находился в списке исключений
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
culver
Отправлено: 09 Июля, 2010 - 13:54:01
Новичок
Покинул форум
Сообщений всего: 20
Дата рег-ции: Июль 2010
Помог: 0 раз(а)
NAT по видимому стоит на линуксовом шлюзе, через который идёт вся связь с внешним миром. Хотя адрес прокси для выхода браузера в интернет стоит не его, а адрес из подсети вышестоящей организации. При определении адреса через сайты (например 2ip.ru) выводится вообще третий адрес.
netstat -ab показывает *.*
telnet может достучаться только до шлюза, который запароленый.
windows firewall отлючал - не помогает.
Пошол другим путём. Подключился через личный радиомодем (всё равно трафик был ограниченный). Больше копаться не буду.
Всем большое спасибо, особенно JustUserR.
JustUserR
Отправлено: 10 Июля, 2010 - 02:51:50
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
culver пишет:
NAT по видимому стоит на линуксовом шлюзе, через который идёт вся связь с внешним миром. Хотя адрес прокси для выхода браузера в интернет стоит не его, а адрес из подсети вышестоящей организации. При определении адреса через сайты (например 2ip.ru) выводится вообще третий адрес.
netstat -ab показывает *.*
telnet может достучаться только до шлюза, который запароленый.
windows firewall отлючал - не помогает.
Пошол другим путём. Подключился через личный радиомодем (всё равно трафик был ограниченный). Больше копаться не буду.
Всем большое спасибо, особенно JustUserR.
Пожалуйста! Однако было бы очень интересно решить ваш вопрос до конца - поскольку при определенном изучении инфраструктуры сети он обязательно должен решаться
Можно видеть что вы имеете дело с многоступенчатной сетью - ваш компьютер подключен к локальной сети первого уровня которая не имеет интернет-шлюза и работает с web-сайтами исключетельно через proxy-сервер - при этом браузер настроен таким образом что все HTTP-запросы он безусловно посылает на данный proxy-сервер не проводя их локальный resolve-инг который-то в общем невозможен Сам proxy-сервер находится в другой локальной сети вышестоящей огранизации - которая связана с вашей сетью простой маршрутизацией без NAT-шлюза - и только локальная сеть это огранизации подключена к маршрутизатору на WAN-стороне которого имеется реальный выход в интернет На самом же деле сетевая картина может быть значительно сложнее - и включать к примеру туннельные соединения и динамическую маршрутизацию и например multicast-сервисы
Огранизация в целях проверки доступа к интернету могла установить специальные средства - например синхронизатор между proxy-сервером и firewall-ом с того сервера который пропускает пакеты только при определенных условиях
Тем не менее ваш браузер успешно работает через proxy-сервер но telnet к нему подключиться не может - в таком случае нужно попробовать выйти в интернет через другой свежескачанный браузер с указанием в нем таких же настроек proxy-сервера Если он тоже откажется работать то проблема скорее всего найдена - например в ваш браузер по умолчанию встроен ActiveX-элемент который обменивается информацией с опредеденным сервисом локальной сети и разрешает отсылку Но даже в таком случае можно схитрить ведь PHP имеет набор функций для работы с OLE и Win32API - и вы можете отправлять запросы путем межпроцессного взаимодействия с вашим браузером - набор этих функций можно посмотреть здесь http://www.php.su/functions/?page=cat_int
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.