Могу ли я создать браузер на сайте?
У меня есть несколько веб-сайтов и я занимаюсь веб-разработкой. Однако я пытаюсь создать метод, с помощью которого я могу создать веб-страницу на моем сервере, чтобы я мог просматривать другие веб-сайты. Для этого есть несколько причин - скрытие моего IP, безопасность, обход брандмауэров и так далее.
Я не могу использовать iFrame, потому что контент все еще загружается на локальное устройство. То, что я хочу, - это решение, которое загружает веб-сайт на сервер, отображает его и отображает на моей веб-странице, поэтому весь контент подается непосредственно с моего сервера. Это было бы похоже на браузер внутри веб-страницы.
Может кто-нибудь помочь мне, как это можно сделать? Я могу сделать немного базового веб-кодирования, которое может помочь, мне не нужно, чтобы оно было модным, просто что-то простое и простое.
2 ответа
Мне удалось это отсортировать... иш. Это грубо, но это работает, хотя иногда страница доставляется в виде простого текста. Хотя для моих целей это не проблема.
Вот мое решение, использующее PHP-функцию file_get_contents в двухстраничном процессе.
Содержание index.php:
<body>
<h1>browser</h1>
/* gets the data from a URL */
?>
<form action="/webb/browse.php" method="post">
url: <input type="text" name="url"><br>
<input type="submit">
</form>
Welcome <?php echo $_POST["url"]; ?><br>
</body>
Содержимое browse.php
<body>
<h1>browser</h1>
/* gets the data from a URL */
?>
<form action="/webb/browse.php" method="post">
url: <input type="text" name="url"><br>
<input type="submit">
</form>
url - https://<?php echo $_POST["url"]; ?><br>
<?php
$url = $_POST["url"];
$homepage = file_get_contents('h'.$url);
echo $homepage;
?>
</body>
Если кто-то хочет уточнить это, они приветствуются, но это работает для меня!
Если у вас есть административный доступ к серверу, HTTP-ретранслятор будет делать то, что вы хотите.
Вы можете использовать Socat
socat TCP4-LISTEN: www TCP4: www.domain.org: www
устанавливает простой перенаправитель TCP-порта. С TCP4-LISTEN он прослушивает локальный порт "www" до тех пор, пока не будет установлено соединение, примет его, затем подключится к удаленному хосту (TCP4) и начнет передачу данных. Он не примет второе соединение.
socat -d -d -lmlocal2 \ TCP4-LISTEN: 80, bind = myaddr1, su = никто,fork,range=10.0.0.0/8,reuseaddr \ TCP4:www.domain.org:80,bind=myaddr2
Переадресация TCP-портов, каждая сторона связана с другим локальным IP-адресом (bind). Этот пример обрабатывает почти произвольное количество параллельных или последовательных соединений, форкая новый процесс после каждого accept() . Это обеспечивает небольшую безопасность, позволяя никому не поддаваться после разветвления; он разрешает соединения только из частной сети 10 (диапазон); из-за reuseaddr, он позволяет немедленный перезапуск после завершения главного процесса, даже если некоторые дочерние сокеты не полностью закрыты. С -lmlocal2 socat регистрирует в stderr, пока не достигнет цикла приема. Дальнейшее ведение журнала направляется в системный журнал с помощью средства local2.
Смотрите также
https://stackoverflow.com/questions/34791674/socat-port-forwarding-for-https