За последние 24 часа нас посетили 35559 программистов и 1819 роботов. Сейчас ищет 781 программист ...

Из локалки в мир через сервер. Как??

Тема в разделе "PHP для новичков", создана пользователем Starshoy, 5 ноя 2008.

  1. Starshoy

    Starshoy Активный пользователь

    С нами с:
    5 ноя 2008
    Сообщения:
    18
    Симпатии:
    0
    Здравствуйте, дорогие товарищи!
    Вот сижу тут, пытаюсь отладить созданный до меня сайт и у меня возникла необходимость дать возможность аутентефицированным пользователям качать некоторые файлы и грузить кое какую страничку из компа, находящего в локальной сети и, соттветсвенно, имеющего только внутренний айпи.
    Внешний сайт стоит на линухе, а на внутреннем компе винда, посредством которой генерится страничка, расположенная на этом самом внутреннем компе, поэтому просто так взять и скопировать это всё счастье на сервак не получится))
    Подскажите пожалуйста, можно ли организовать рестрансляцию из локалки в мир через сервер средствами пхп?
     
  2. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    IIS?
     
  3. Starshoy

    Starshoy Активный пользователь

    С нами с:
    5 ноя 2008
    Сообщения:
    18
    Симпатии:
    0
    ага
    + асп.нет
     
  4. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Значит надо настроить IIS на работу с сокетом IP:80, тогда сайт будет доступен по http://ip_компа/
     
  5. Starshoy

    Starshoy Активный пользователь

    С нами с:
    5 ноя 2008
    Сообщения:
    18
    Симпатии:
    0
    Для внутренних компов - да. А для внешних?
     
  6. Mete0

    Mete0 Активный пользователь

    С нами с:
    18 дек 2006
    Сообщения:
    272
    Симпатии:
    0
    Адрес:
    Gatchina
    Указать внешний IP:80.
     
  7. Starshoy

    Starshoy Активный пользователь

    С нами с:
    5 ноя 2008
    Сообщения:
    18
    Симпатии:
    0
    а внешнего IP нет. Выход в инет через сервер. Поэтому, собственно, я и спрашиваю как можно ретранслировать пакеты, приходящие из интернета, на комп в локальной сети (ну типа ип у которого 192.168.*.*).
     
  8. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Шлюзом.
     
  9. Starshoy

    Starshoy Активный пользователь

    С нами с:
    5 ноя 2008
    Сообщения:
    18
    Симпатии:
    0
    А с аутентификацией как быть? Ну чтобы незалогиненый пользователь вообще не видел внутреннего компа.

    Ну то есть типа так: я пишу некую ссылку, пользователь по ней проходит и если это залогиненый пользователь, тогда сервак берёт данные с внутреннего компа и передаёт их внешнему.
     
  10. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Наверняка тебе нужен cURL. Правда, обсуждение cURL негласно запрещено, тссс! ;-)
     
  11. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    хренасе я пропустил. А ГО хороший провокатор оказался :)
    жесть, чтож там за мегаалгоритмы отдачи файлов, что их нельзя было перенести на тот же php или дать в мир пхп скрипт, отдающий файлы, а брать скриптом с сетевой машины
     
  12. Starshoy

    Starshoy Активный пользователь

    С нами с:
    5 ноя 2008
    Сообщения:
    18
    Симпатии:
    0
    я вот и спрашиваю как бы такой скрипт заделать! :D

    кстати мне тут плдсказали include использовать для передачи странички. Только он чё-то ничего не передаёт :( а в справочнике функций на этом сайте его вообще нету :(

    хотя он наверно тупо сможет разве что вывести инфу на экран.. а надо бы с ней ещё и повзаимодействовать..
     
  13. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    cURL может имитировать работу браузера. Может коннектиться к этому серверу и забирать страничку. И даже взаимодействовать с сервером как браузер.
     
  14. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    или пошаманить с праваи доступа для php на виндовой машине и если надо отдавать хранящийся на машине файл, то http://php.net/readfile и http://php.net/header
     
  15. Starshoy

    Starshoy Активный пользователь

    С нами с:
    5 ноя 2008
    Сообщения:
    18
    Симпатии:
    0
    а пхп такого не умеет?
    ну вроде ведь ничего сложного. Там взял, туда передал и обратно. Но вот только как :?:
     
  16. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Под cURL я подразумеваю модуль cURL для PHP :)
    Собственно говоря, можно обойтись и сокетами и базовыми знаниями протокола HTTP.
     
  17. Starshoy

    Starshoy Активный пользователь

    С нами с:
    5 ноя 2008
    Сообщения:
    18
    Симпатии:
    0
    спасибо. А со страничкой чё делать?
    вот вот такой кодец меня и интересует)
     
  18. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    file_get_contents
     
  19. Starshoy

    Starshoy Активный пользователь

    С нами с:
    5 ноя 2008
    Сообщения:
    18
    Симпатии:
    0
    Блин, ну дайте мне рабочий пример! :cry:
    Конкретно как сайт передать из локалки в мир пхп-скриптом?
    А то я чё-то совсем теряюсь :(
     
  20. Mete0

    Mete0 Активный пользователь

    С нами с:
    18 дек 2006
    Сообщения:
    272
    Симпатии:
    0
    Адрес:
    Gatchina
    http://ru2.php.net/file_get_contents
     
  21. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Сервер, если я правильно понял, имеет соеденение (находится в той же сети) что и компьютер с IIS?

    script.php
    PHP:
    1. <?php
    2. /* Скрипт просто забирает нужную страничку с внутреннего сервера
    3. И выводит её */
    4. $file = isset($_GET['file']) ? $_GET['file'] : null;
    5. $page=file_get_contents("http://ip_adress/$file");
    6. echo $page;
    7. ?>
     
  22. Starshoy

    Starshoy Активный пользователь

    С нами с:
    5 ноя 2008
    Сообщения:
    18
    Симпатии:
    0
    Спасибо!
    Попробовал код - с локальным файлом вроде работает. А по ссылке - нет :(
    Начал думать что может это и не в пхп дело вовсе? И вот додумался до того, что решил попробовать тупо телнетом добраться до 80-го порта внутреннего компа, а он не отвечает! Главное когда шлю запросы с сервака - не отвечает. Ну то есть тупо вообще никакой реакции. Попробовал с другого внутреннего компа, на котором винда, потелнетить - всё работает. А тут нет. Мож кто подскажет что за фигня такая приключается не хорошая? :(
    И главное сервак-то пингует этот внутренний комп, а "telnet ip_компа 80" тупо ничего не выдаёт :(
     
  23. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Может файрвол какой, или межсетевой экран?
    Еще в php.ini параметр allow_url_fopen должен быть включен, вот так:
    Код (Text):
    1. allow_url_fopen = On