From 1d31ebbeec74b7b928ea1c49157448ecf857a074 Mon Sep 17 00:00:00 2001 From: karlchenofhell Date: Sun, 25 Feb 2007 15:18:22 +0000 Subject: [PATCH] - added experimental PHP script which redirects from a vhost to a peer, using a public seed-file git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@3395 6c8d7289-2bf4-0310-a012-ef5d649a1542 --- addon/peerForwarding.php | 146 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 addon/peerForwarding.php diff --git a/addon/peerForwarding.php b/addon/peerForwarding.php new file mode 100644 index 000000000..1b64aba41 --- /dev/null +++ b/addon/peerForwarding.php @@ -0,0 +1,146 @@ + 600){ + $content=file_get_contents($url); + $file=fopen($filename, 'w'); + fwrite($file, $content); + fclose($file); + }else{ + $content=file_get_contents($filename); + } + return $content; + } + + class peer { + + var $seed; + + function peer($seed) { + switch (substr($seed, 0, 1)) { + case 'p': $plainlist = substr($seed, 2); break; // plain text + case 'b': $plainlist = base64_decode(substr($seed, 2)); break; // base64-encoded + default: $plainlist = substr($seed, 2); break; + } + $plainlist = substr($plainlist, 1, -1); // kill '{' on beginning and '}' at the end + $list = explode(',', $plainlist); + $r = array(); + foreach ($list as $value) { + $equal = strpos($value, '='); + $r[substr($value, 0, $equal)] = substr($value, $equal + 1); + } + $this->seed = $r; + } + + function getHash() { return $this->seed['Hash']; } + function getIPType() { return $this->seed['IPType']; } + function getTags() { return $this->seed['Tags']; } + function getPort() { return $this->seed['Port']; } + function getIP() { return $this->seed['IP']; } + function getRI() { return $this->seed['rI']; } + function getUptime() { return $this->seed['Uptime']; } + function getVersion() { return $this->seed['Version']; } + function getUTC() { return $this->seed['UTC']; } + function getPeerType() { return $this->seed['PeerType']; } + function getSI() { return $this->seed['sI']; } + function getLastSeen() { return $this->seed['LastSeen']; } + function getName() { return $this->seed['Name']; } + function getCCount() { return $this->seed['CCount']; } + function getSCount() { return $this->seed['SCount']; } + function getNews() { return $this->seed['news']; } + function getUSpeed() { return $this->seed['USpeed']; } + function getCRTCount() { return $this->seed['CRTCnt']; } + function getCRWCount() { return $this->seed['CRWCnt']; } + function getBirthDate() { return $this->seed['BDate']; } + function getLinks() { return $this->seed['LCount']; } + function getRU() { return $this->seed['rU']; } + function getWords() { return $this->seed['ICount']; } + function getSU() { return $this->seed['sU']; } + function getISpeed() { return $this->seed['ISpeed']; } + function getNCount() { return $this->seed['NCount']; } + function getFlags() { return $this->seed['Flags']; } + } + + function decodeSeedList($list) { + $seeds = explode("\n", $list); + $r = array(); + foreach ($seeds as $seed) { + $peer = new peer($seed); + $r[strtolower($peer->getName())] = $peer; + } + return $r; + } + + $name = $_SERVER['SERVER_NAME']; + $name = substr($name, 0, strlen($name) - $hostlength); + + $seedfile = get($seedurl, $seedfile); + $peers = decodeSeedList($seedfile); + + $peer = $peers[strtolower($name)]; + + #peername.yacypeer.dyndns.org + #rewrite: + #RewriteCond %{REQUEST_URI} /error.html + #RewriteRule ^/(.*) /error.html [L] + #RewriteRule ^/(.*) /index.php?url=$1 [L] + + #$name=$_SERVER['SERVER_NAME']; + #$name=substr($name, 0, strlen($name)-(strlen($basehost)+1)); //+1 because we filter .$basehost + + #domain.org/peername/* + #rewrite: + #RewriteRule ^/(.*) /error.html [L] + #RewriteRule ^/([^\/]*)/(.*) /index.php?name=$1&url=$2 [L] + + if (strlen($name) == 0 || $peer == null) { + // peer-list +?> + + + Active YaCy-Peers + + + + + + + + + + '; + }?> +
NameUptime
'. $peer->getName() .''. $peer->getUptime() .'
+ + +getName(); + $page='http://'. $peer->getIP() .':'.$peer->getPort() .'/'; + } + +?> + + + <? echo $peername; ?> + + + + + + \ No newline at end of file