<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://shareaza.sourceforge.net/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ale5000</id>
	<title>Shareaza Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://shareaza.sourceforge.net/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ale5000"/>
	<link rel="alternate" type="text/html" href="https://shareaza.sourceforge.net/mediawiki/Special:Contributions/Ale5000"/>
	<updated>2026-05-02T04:19:36Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.40.1</generator>
	<entry>
		<id>https://shareaza.sourceforge.net/w/index.php?title=GWC_specs&amp;diff=11518</id>
		<title>GWC specs</title>
		<link rel="alternate" type="text/html" href="https://shareaza.sourceforge.net/w/index.php?title=GWC_specs&amp;diff=11518"/>
		<updated>2016-01-10T04:41:44Z</updated>

		<summary type="html">&lt;p&gt;Ale5000: Added Cachechu last release date&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;For general information on GWCs, have a look at the [[GWC]] Wiki page.&#039;&#039;&lt;br /&gt;
{{do not translate}}&lt;br /&gt;
This page is thought to give an overview over the GWC specifications as they are implemented into Shareaza.&lt;br /&gt;
&lt;br /&gt;
A GWC is a simple script that can be put on any webserver that supports one of the following scripting languages: &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;PHP&#039;&#039;&#039; &#039;&#039;(Tip: PHP GWCs are usually the easiest to run and setup on a server.)&#039;&#039;&lt;br /&gt;
** [http://code.google.com/p/cachechu/ Cachechu G2WC]&lt;br /&gt;
** [http://sourceforge.net/projects/skulls/ Skulls! Multi-Network WebCache]&lt;br /&gt;
** [http://sourceforge.net/projects/beaconcache/ Beacon Cache]&lt;br /&gt;
** Bazooka G2WC&lt;br /&gt;
** [http://gwcii.sourceforge.net/ PHPGnuCacheII]&lt;br /&gt;
** The original [http://www.gnucleus.com/gwebcache/dist/ GnuWebCache] &#039;&#039;(PHP version is no longer supported)&#039;&#039; &lt;br /&gt;
* C &lt;br /&gt;
** [http://github.com/gtk-gnutella/gwc GhostWhiteCrab] (For dedicated server environments and people who know how to compile C source code!) &lt;br /&gt;
* JSP (Java Servlet) &lt;br /&gt;
** [http://www1.mager.org/GWebCache/ Jums Web Cache] (Excellent for heavy loads) &lt;br /&gt;
* ASP &lt;br /&gt;
** [http://www.edazzle.net/downloads/gerry.zip Gerry GWC] &lt;br /&gt;
** [https://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=7846&amp;amp;lngWId=4 Lynn (v.s. 0.5)] &lt;br /&gt;
** [https://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=7731&amp;amp;lngWId=4 Lynn (v.s. 0.4)] &lt;br /&gt;
** [http://www.poundwebhosting.com/cgi-bin/lynnx.asp LynnX] &lt;br /&gt;
* Perl &lt;br /&gt;
** [http://www.jonatkins.com/perlgcache/ Jon Atkins&#039; perlgcache] &lt;br /&gt;
** The original [http://www.gnucleus.com/gwebcache/dist/ GnuWebCache] &lt;br /&gt;
&lt;br /&gt;
== Breakdown Of The Gnutella Web Caches: == &lt;br /&gt;
{{RecoveredPage|I recently put this into a table. The contents need to be verified -- [[User:Cyko 01|Cyko 01]]}}&lt;br /&gt;
&lt;br /&gt;
{| width= auto; style=&amp;quot;font-size: 85%; text-align: center;text-valign: middle;&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Cache:&lt;br /&gt;
! rowspan=1 |Gnutella:&lt;br /&gt;
! rowspan=1 |Gnutella2:&lt;br /&gt;
! rowspan=1 |Spec 1:&lt;br /&gt;
! rowspan=1 |Spec 2:&lt;br /&gt;
! rowspan=1 |Flat-File:&lt;br /&gt;
! rowspan=1 |SQL:&lt;br /&gt;
! rowspan=1 |Installer:&lt;br /&gt;
! rowspan=1 |Other Networks:&lt;br /&gt;
! rowspan=1 |Different network instances:&lt;br /&gt;
! rowspan=1 |Latest release date:&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Beacon Cache (Core 2)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|style=&amp;quot;background: #CCFFCC;&amp;quot;| Yes (As of 0.2.0 Alpha)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 2009-09-14&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Beacon Cache (Core 1)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Skulls&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 2015-04-10&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|JumsWebCache&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|GnuWebCache (Perl)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|GnuWebCache (PHP) &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|GhostWhiteCrab(GWC) &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|style=&amp;quot;background: #FFFFCC;&amp;quot;| N/A&lt;br /&gt;
|style=&amp;quot;background: #FFFFCC;&amp;quot;| N/A&lt;br /&gt;
|style=&amp;quot;background: #FFFFCC;&amp;quot;| N/A&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|PHPGnuCacheII &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Bazooka &lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Cachechu&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| 2016-01-09&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Perlgcache&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Gerry GWC (v2)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Gerry GWC (v1)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Lynn&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|LynnX&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Shareaza Specific Details == &lt;br /&gt;
&lt;br /&gt;
{{RecoveredPage|Warninig: here I have pasted better formatted recovery, but not verified. Row recovery has been mooved below as I don&#039;t know if anybody has made any changes in it. If not then row recovery can be deleted. Paste starts from &amp;gt;&amp;gt;Shareaza Specific Details&amp;lt;&amp;lt;, here, and ends at second &amp;gt;&amp;gt;Shareaza Specific Details&amp;lt;&amp;lt; I hope it is visible.  --[[User:Ocexyz|Ocexyz]] 23:27, 27 July 2009 (UTC)}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Get String Breakdown:&#039;&#039;&#039; &lt;br /&gt;
* Update a leaf &lt;br /&gt;
** &amp;quot;?update=1&amp;amp;ip=(ip):(port)&amp;amp;x_leaves=(leaf count) &lt;br /&gt;
* Ping Variable &lt;br /&gt;
** Appends &amp;amp;ping=1 to identify the cache name in debug messages (for gnutella and gnutella2 in 2.4.0.0, but only for gnutella2 now in 2.4.0.X for spec1 cache compatibility). &lt;br /&gt;
** This feature new to Shareaza. &lt;br /&gt;
* Network Variable &lt;br /&gt;
** Appends &amp;amp;net=gnutella2 on Gnutella2 queries. &lt;br /&gt;
** Does NOT append a network variable on Gnutella(1) queries. &lt;br /&gt;
* Client Name / Version Format (2.4.0.0 and earlier): &lt;br /&gt;
** &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) ) &lt;br /&gt;
** &amp;amp;version=(Shareaza&#039;s version) &lt;br /&gt;
* Client Name / Version Format (2.4.0.X): &lt;br /&gt;
** If Gnutella &lt;br /&gt;
*** &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) ) &lt;br /&gt;
*** &amp;amp;version=(Shareaza&#039;s version) &lt;br /&gt;
** If Gnutella2 &lt;br /&gt;
*** &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) )+(Shareaza&#039;s version) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GWC Response Matching:&#039;&#039;&#039; &lt;br /&gt;
* i| &lt;br /&gt;
** Informational output alone will not be taken as GWC &#039;success.&#039; &lt;br /&gt;
* i|access|period|(time in sec.) &lt;br /&gt;
** Time in seconds before Shareaza is allowed to make a request to the cache. &lt;br /&gt;
* i|update|period|(time in sec.) &lt;br /&gt;
** Time in seconds before Shareaza is allowed to update to the cache. &lt;br /&gt;
* i|force|remove and i|update|warning|bad url &lt;br /&gt;
** Remove the GWC from the internal list. &lt;br /&gt;
* Some Response Matches (added in 2.3.1.X) &lt;br /&gt;
** i|NO-URL-NO-HOSTS &lt;br /&gt;
*** Outputs warning of the cache being totally empty to the system log. &lt;br /&gt;
** i|NO-URL &lt;br /&gt;
*** Outputs warning of the cache having no alternative URLs to the system log. &lt;br /&gt;
** i|NO-HOSTS &lt;br /&gt;
*** Outputs warning of the cache having no hosts to the system log. &lt;br /&gt;
** i|warning| &lt;br /&gt;
*** Outputs warning of the cache to the system log. &lt;br /&gt;
** ERROR Something Failed &lt;br /&gt;
*** Outputs warning of the cache to the system log(Buggy Bazooka GWCs workaround). &lt;br /&gt;
** i|warning|You came back too early (2.3.1.X) &lt;br /&gt;
** i|warning|client|early (2.3.1.X) &lt;br /&gt;
** WARNING: You came back too early (2.3.1.X) &lt;br /&gt;
** ERROR: Client returned too early (2.3.1.X) &lt;br /&gt;
*** Flood detection for the update side. &lt;br /&gt;
*** Outputs GWebCache(update) Too many connection attempts to the system log. &lt;br /&gt;
** too early (2.3.1.X) &lt;br /&gt;
** early (2.4.0.X) &lt;br /&gt;
*** Flood detection for the request side. &lt;br /&gt;
*** Outputs GWebCache URL: Too many connection attempts to the system log. &lt;br /&gt;
** i|update|OK &lt;br /&gt;
*** Outputs &amp;quot;GWebCache(v2) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
** OK &lt;br /&gt;
*** Outputs &amp;quot;GWebCache(v1) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
&lt;br /&gt;
== Gnutella Web Cache Specifications ==&lt;br /&gt;
==== Specification 1: ====&lt;br /&gt;
* &#039;&#039;&#039;Networks Served&#039;&#039;&#039; &lt;br /&gt;
** Gnutella &lt;br /&gt;
* &#039;&#039;&#039;Format&#039;&#039;&#039; &lt;br /&gt;
** Update went fine: &lt;br /&gt;
*** Ex: OK &lt;br /&gt;
** Update Warning (Small prob., not that bad): &lt;br /&gt;
*** Ex: OKWARNING: Error Message &lt;br /&gt;
&lt;br /&gt;
* Severe Warning (No &#039;OK&#039; message sent) &lt;br /&gt;
** Ex: WARNING: Error Message&lt;br /&gt;
&lt;br /&gt;
* URL Output: &lt;br /&gt;
** Ex: [http://somefreakinrandomcache.com/cache/gcache.php http://somefreakinrandomcache.com/cache/gcache.php] &lt;br /&gt;
*** OR - WITH A PORT NUMBER (If not 80) &lt;br /&gt;
**** Ex: [http://somefreakinrandomcache.com:8080/cache/gcache.php http://somefreakinrandomcache.com:8080/cache/gcache.php] &lt;br /&gt;
* Host Output: &lt;br /&gt;
** Ex: 66.132.55.12:6346 &lt;br /&gt;
* Pong (ping variable response) - was explained below under the topic: variables. &lt;br /&gt;
* &#039;&#039;&#039;Example Cache Output (Beacon Cache) For urlfile Command&#039;&#039;&#039; &lt;br /&gt;
** Example &amp;quot;urlfile Output&amp;quot; URL: Ex: [http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;urlfile=1 http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;urlfile=1] &lt;br /&gt;
*** Example URL Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Getting urls with a pong combined&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| PONG Beacon Cache 0.1.5D Beta[http://gwc.frodoslair.net/skulls/skulls.php http://gwc.frodoslair.net/skulls/skulls.php][http://bbs.robertwoolley.co.uk/GWebCache/gcache.php http://bbs.robertwoolley.co.uk/GWebCache/gcache.php][http://g2.tjtech.org/g2/ http://g2.tjtech.org/g2/][http://g2.tjtech.org/g2/index.php http://g2.tjtech.org/g2/index.php][http://gwc.monnsta.net/ http://gwc.monnsta.net/][http://holograph.uni.cc/other/skulls.php http://holograph.uni.cc/other/skulls.php][http://gwc.nickstallman.net/ http://gwc.nickstallman.net/][http://gwc.eod.cc/skulls.php http://gwc.eod.cc/skulls.php][http://gwc.frodoslair.net/skulls/skulls http://gwc.frodoslair.net/skulls/skulls][http://gwc.werwin.net/skulls.php http://gwc.werwin.net/skulls.php] &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
* &#039;&#039;&#039;Example Cache Output (Beacon Cache) For hostfile Command&#039;&#039;&#039; &lt;br /&gt;
** Example &amp;quot;hostfile Output&amp;quot; URL: Ex: [http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;hostfile=1 http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;hostfile=1] &lt;br /&gt;
*** Example Host Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Getting the hosts with a pong combined&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| PONG Beacon Cache 0.1.5D Beta71.8.84.153:391599.248.214.157:2752969.60.241.55:16369193.253.239.246:3021868.156.175.121:634871.179.7.241:1834474.196.22.241:634812.210.197.194:10531222.150.143.77:1000058.85.231.135:634624.141.199.164:2020572.175.201.195:634869.81.129.228:488097.81.221.63:1321970.15.130.224:7759216.211.188.106:5190375.167.168.156:4866012.214.14.3:3591676.177.244.106:2418098.165.218.139:3963068.112.182.125:368568.117.204.57:2348265.12.154.25:4076069.180.47.169:571175.138.40.173:2498798.201.19.0:3366270.187.2.144:634868.186.209.107:1442969.159.7.61:634876.208.176.196:48199&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
* &#039;&#039;&#039;For combining a hostfile and urlfile request:&#039;&#039;&#039; &lt;br /&gt;
** Warning: This is non-standard. &lt;br /&gt;
** &#039;&#039;&#039;Example Cache Output (Beacon Cache) For bfile Command&#039;&#039;&#039; &lt;br /&gt;
*** Example &amp;quot;bfile Output&amp;quot; URL: Ex: [http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;bfile=1 http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;bfile=1] &lt;br /&gt;
**** Example Host and URL Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Getting the hosts and urls with a pong combined&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| PONG Beacon Cache 0.1.5D Beta71.8.84.153:391599.248.214.157:2752969.60.241.55:16369193.253.239.246:3021868.156.175.121:634871.179.7.241:1834474.196.22.241:634812.210.197.194:10531222.150.143.77:1000058.85.231.135:634624.141.199.164:2020572.175.201.195:634869.81.129.228:488097.81.221.63:1321970.15.130.224:7759216.211.188.106:5190375.167.168.156:4866012.214.14.3:3591676.177.244.106:2418098.165.218.139:3963068.112.182.125:368568.117.204.57:2348265.12.154.25:4076069.180.47.169:571175.138.40.173:2498798.201.19.0:3366270.187.2.144:634868.186.209.107:1442969.159.7.61:634876.208.176.196:48199[http://gwc.frodoslair.net/skulls/skulls.php http://gwc.frodoslair.net/skulls/skulls.php][http://bbs.robertwoolley.co.uk/GWebCache/gcache.php http://bbs.robertwoolley.co.uk/GWebCache/gcache.php][http://g2.tjtech.org/g2/ http://g2.tjtech.org/g2/][http://g2.tjtech.org/g2/index.php http://g2.tjtech.org/g2/index.php][http://gwc.monnsta.net/ http://gwc.monnsta.net/][http://holograph.uni.cc/other/skulls.php http://holograph.uni.cc/other/skulls.php][http://gwc.nickstallman.net/ http://gwc.nickstallman.net/][http://gwc.eod.cc/skulls.php http://gwc.eod.cc/skulls.php][http://gwc.frodoslair.net/skulls/skulls http://gwc.frodoslair.net/skulls/skulls][http://gwc.werwin.net/skulls.php http://gwc.werwin.net/skulls.php] &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Variables&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Mandatory&#039;&#039;&#039; &lt;br /&gt;
** ping: &lt;br /&gt;
*** Response should have this always: PONG&lt;br /&gt;
*** After, put the cache&#039;s name. ex: PONG fakecache 0.01&lt;br /&gt;
** client: &lt;br /&gt;
*** Four letter code of the client. ex: RAZA &lt;br /&gt;
** version: &lt;br /&gt;
*** Version number of the client. &lt;br /&gt;
** urlfile: &lt;br /&gt;
*** Used by the client to request alternate cache urls. &lt;br /&gt;
** hostfile: &lt;br /&gt;
*** Used by the client to request IPs with port numbers attached. &lt;br /&gt;
** url: &lt;br /&gt;
*** Client update giving an alternate cache URL. &lt;br /&gt;
*** Formatted with a http:// prefix to each cache. &lt;br /&gt;
** ip: &lt;br /&gt;
*** Client update giving one&#039;s IP to submit. &lt;br /&gt;
** url1: &lt;br /&gt;
*** OLD OUTDATED Client update giving an alternate cache URL. &lt;br /&gt;
*** Formatted with a http:// prefix to each cache. &lt;br /&gt;
** ip1: &lt;br /&gt;
*** OLD OUTDATED Client update giving one&#039;s IP to submit. &lt;br /&gt;
* &#039;&#039;&#039;Optional&#039;&#039;&#039; &lt;br /&gt;
** bfile: &lt;br /&gt;
*** For clients to request both URLs and IPs from the cache at the same time. &lt;br /&gt;
** statfile: &lt;br /&gt;
*** Statistics of the cache request: &lt;br /&gt;
**** First line: Total requests of the cache number. &lt;br /&gt;
**** Second line: Requests of the cache an hour number. &lt;br /&gt;
**** Third line: Updates of the cache an hour number.&lt;br /&gt;
&lt;br /&gt;
==== Specification 2: ====&lt;br /&gt;
&#039;&#039;&#039;Networks Served&#039;&#039;&#039; &lt;br /&gt;
* Gnutella, Gnutella2, etc. &lt;br /&gt;
&#039;&#039;&#039;Format&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Information Output&#039;&#039;&#039; &lt;br /&gt;
** Starts with: I| &lt;br /&gt;
*** &#039;&#039;&#039;Categories&#039;&#039;&#039; &lt;br /&gt;
**** &#039;&#039;&#039;Pong&#039;&#039;&#039; (ping variable response) - Described below under the topic: variables. &lt;br /&gt;
**** &#039;&#039;&#039;Update Status Response&#039;&#039;&#039; &lt;br /&gt;
***** Format: I|update &lt;br /&gt;
***** &#039;&#039;&#039;Responses&#039;&#039;&#039; &lt;br /&gt;
****** I|update|OK &lt;br /&gt;
******* - Everything went fine. &lt;br /&gt;
****** I|update|OK|WARNING &lt;br /&gt;
******* Small warning. &lt;br /&gt;
****** I|update|WARNING &lt;br /&gt;
******* Severe warning &lt;br /&gt;
**** &#039;&#039;&#039;Plain Warnings&#039;&#039;&#039; &lt;br /&gt;
***** Format: I|WARNING &lt;br /&gt;
****** Append any warning messages after it - Ex: I|WARNING|You came back too early &lt;br /&gt;
**** &#039;&#039;&#039;Extra Info&#039;&#039;&#039; - Described below under the topic: variables. &lt;br /&gt;
* &#039;&#039;&#039;Host Output&#039;&#039;&#039; &lt;br /&gt;
** Starts with: H| &lt;br /&gt;
** Add the IP with its port: &lt;br /&gt;
*** Ex: H|0.0.0.0:6346 &lt;br /&gt;
** Add the time, thereafter, of the host&#039;s (In seconds*) time in cache: &lt;br /&gt;
*** Ex: H|0.0.0.0:6346|45 &lt;br /&gt;
** If cluster exists with cluster=somerandomwords &lt;br /&gt;
*** Add the clustered words after the host&#039;s age: &lt;br /&gt;
**** Ex: H|0.0.0.0:6346|45|somerandomwords &lt;br /&gt;
* &#039;&#039;&#039;URL Output&#039;&#039;&#039; &lt;br /&gt;
** Starts with: U| &lt;br /&gt;
** Add the URL with http:// before it, plus the port (if it&#039;s not 80). &lt;br /&gt;
*** Ex: U|[http://somerandomcache.com/ http://somerandomcache.com/] &lt;br /&gt;
** Add the time, thereafter, of the URL&#039;s time (In seconds*) in cache: &lt;br /&gt;
*** Ex: U|[http://somerandomcache.com/%7C45 http://somerandomcache.com/|45] &lt;br /&gt;
* &#039;&#039;&#039;Example Cache Output (Beacon Cache) For get Command&#039;&#039;&#039; &lt;br /&gt;
** Example URL: [http://grantgalitz.com/Beacon/gwc.php?get=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;net=gnutella2&amp;amp;ping=1 http://grantgalitz.com/Beacon/gwc.php?get=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;net=gnutella2&amp;amp;ping=1] &lt;br /&gt;
*** Example &amp;quot;Get&amp;quot; Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Getting the hosts and urls with a pong combined&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| I|pong|Beacon Cache 0.1.5D Beta|gnutella-gnutella2H|65.9.200.243:4968|248261H|68.228.129.75:44599|242678H|98.240.196.122:8206|240719H|76.104.12.133:14921|218273H|69.136.1.12:3924|211610H|81.154.208.71:8595|174402H|97.96.105.51:2076|153610H|74.192.153.212:39340|144203H|72.190.106.57:12584|132984H|78.93.71.132:12334|125668H|82.43.248.184:27560|97974H|196.205.224.97:6357|86763H|74.129.219.30:33172|82005H|76.104.12.133:19185|57182H|69.59.83.131:18442|38628U|[http://www.k33bz.com/g2/bazooka.php%7C248639 http://www.k33bz.com/g2/bazooka.php|248639]U|[http://gwebcache.ns1.net/%7C248592 http://gwebcache.ns1.net/|248592]U|[http://gwc2.wodi.org/skulls.php%7C248384 http://gwc2.wodi.org/skulls.php|248384]U|[http://gwc.guufshop.com/skulls/skulls.php%7C248322 http://gwc.guufshop.com/skulls/skulls.php|248322]U|[http://groovy.syxy.com/up/skulls.php%7C248300 http://groovy.syxy.com/up/skulls.php|248300]U|[http://g2.tjtech.org/g2/index.php%7C247770 http://g2.tjtech.org/g2/index.php|247770]U|[http://midian.jayl.de/g2/bazooka.php%7C240719 http://midian.jayl.de/g2/bazooka.php|240719]U|[http://www.dom2porno.info/skulls/skulls.php%7C207473 http://www.dom2porno.info/skulls/skulls.php|207473]U|[http://gwc.frodoslair.net/skulls/skulls%7C125668 http://gwc.frodoslair.net/skulls/skulls|125668]U|[http://holograph.uni.cc/other/skulls.php%7C9642 http://holograph.uni.cc/other/skulls.php|9642] &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Variables&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Mandatory&#039;&#039;&#039; &lt;br /&gt;
** ping: &lt;br /&gt;
*** Main Part: I|pong| &lt;br /&gt;
*** Then add the cache name and version: I|pong|fakecache 0.01 &lt;br /&gt;
*** Then lastly add the network support: &lt;br /&gt;
**** I|pong|fakecache 0.01|gnutella &lt;br /&gt;
***** - Gnutella only &lt;br /&gt;
**** I|pong|fakecache 0.01|gnutella2 &lt;br /&gt;
***** - Gnutella2 only &lt;br /&gt;
**** I|pong|fakecache 0.01|gnutella-gnutella2 &lt;br /&gt;
***** - Gnutella and Gnutella2 served &lt;br /&gt;
** get: &lt;br /&gt;
*** Used by clients to requests alternate cache URLs along with IPs and their port numbers. &lt;br /&gt;
** update: &lt;br /&gt;
*** url: &lt;br /&gt;
**** Client update giving an alternate cache URL. &lt;br /&gt;
**** Formatted with a http:// prefix to each cache. &lt;br /&gt;
*** ip: &lt;br /&gt;
**** Client update giving one&#039;s IP to submit. &lt;br /&gt;
** net: &lt;br /&gt;
*** Which network to serve the client. &lt;br /&gt;
**** Gnutella &lt;br /&gt;
***** Ex: net=gnutella &lt;br /&gt;
**** Gnutella2 &lt;br /&gt;
***** Ex: net=gnutella2 &lt;br /&gt;
**** &#039;&#039;&#039;Should always be lowercase&#039;&#039;&#039; &lt;br /&gt;
***** GWCs should automatically convert network name given to lowercase to prevent Net ID mismatches &lt;br /&gt;
&lt;br /&gt;
solely on case alone. &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
* &lt;br /&gt;
** client: &lt;br /&gt;
*** Four letter code of the client. ex: RAZA &lt;br /&gt;
** version: &lt;br /&gt;
*** Version number of the client. &lt;br /&gt;
* &#039;&#039;&#039;Optional&#039;&#039;&#039; &lt;br /&gt;
** cluster: &lt;br /&gt;
*** To add extra info to an IP update. &lt;br /&gt;
**** Output by cache: H|0.0.0.0|AGE OF HOST (Seconds)|clustering some bull**** &lt;br /&gt;
** statfile: &lt;br /&gt;
*** Exactly like the specification 1 statfile &#039;&#039;&#039;(Same routine and output style)&#039;&#039;&#039;. &lt;br /&gt;
*** Statistics of the cache request: &lt;br /&gt;
**** First line: Total requests of the cache number. &lt;br /&gt;
**** Second line: Requests of the cache an hour number. &lt;br /&gt;
**** Third line: Updates of the cache an hour number. &lt;br /&gt;
&lt;br /&gt;
==== Specification 2.1 ====&lt;br /&gt;
&#039;&#039;&#039;This is an extension of specification 2, not a separate specification!&#039;&#039;&#039; &lt;br /&gt;
Pong extension &lt;br /&gt;
* Append the networks supported joined by a hyphen &#039;-&#039;. &lt;br /&gt;
* Used for client-side validation of networks supported and for network support reporting to other web caches. &lt;br /&gt;
* Format: &lt;br /&gt;
** I|pong|cache name|network names joined by &#039;-&#039; &lt;br /&gt;
** Format Examples: &lt;br /&gt;
*** I|pong|fakecache 0.01|gnutella &lt;br /&gt;
**** - Gnutella only &lt;br /&gt;
*** I|pong|fakecache 0.01|gnutella2 &lt;br /&gt;
**** - Gnutella2 only &lt;br /&gt;
*** I|pong|fakecache 0.01|gnutella-gnutella2 &lt;br /&gt;
**** - Gnutella and Gnutella2 served &lt;br /&gt;
Host Output &lt;br /&gt;
* Just like specification 2, but with more fields supported for host output. &lt;br /&gt;
** H|ip:port|age in cache|clustering|leaves|4 letter vendor code|reported uptime of host|max. leaves possible &lt;br /&gt;
*** The host, age, and clustering fields are all still the same as in specification 2. &lt;br /&gt;
*** The leaf count of the hub reported is in the 5th field. &lt;br /&gt;
*** The vendor code with version number is in the 6th field. &lt;br /&gt;
Request Control Variables: &lt;br /&gt;
* getleaves &lt;br /&gt;
** Used to obtain leaf counts of hubs given &lt;br /&gt;
** 4th field ultilized for current leaf count. &lt;br /&gt;
** 7th field ultilized for maximum leaf slots possible. &lt;br /&gt;
** Use this as &#039;getleaves=1&#039; or &#039;getleaves&#039; to enable. &lt;br /&gt;
* getclusters &lt;br /&gt;
** Enables/Disables clustering. &lt;br /&gt;
** Use this as &#039;getclusters=1&#039;. &lt;br /&gt;
** Using &#039;getclusters&#039; or &#039;getclusters=0&#039; disables cluster output. &lt;br /&gt;
* getvendors &lt;br /&gt;
** Used to obtain the vendor code w/ version number of the hubs given. &lt;br /&gt;
** Found in the 5th field. &lt;br /&gt;
** Use this as &#039;getvendors=1&#039; or &#039;getvendors&#039; to enable. &lt;br /&gt;
* getuptime &lt;br /&gt;
** Used to obtain the vendor code w/ version number of the hubs given. &lt;br /&gt;
** Value is static, do not change the value given when time passes. &lt;br /&gt;
** Found in the 6th field. &lt;br /&gt;
** Use this as &#039;getuptime=1&#039; or &#039;getuptime&#039; to enable. &lt;br /&gt;
* spec &lt;br /&gt;
** To force the specification parameter &lt;br /&gt;
** Currently is only supported by Beacon Cache II &lt;br /&gt;
* pv &lt;br /&gt;
** Similar to the &#039;spec&#039; parameter, except that it does not force, instead it simply negotiates the specification. &lt;br /&gt;
Special Data Requests &lt;br /&gt;
* info &lt;br /&gt;
** Outputs extra details of your cache. &lt;br /&gt;
*** Start with the informational response: I| &lt;br /&gt;
**** Ex: I|open-source|1 &lt;br /&gt;
* support &lt;br /&gt;
** Outputs USEFUL details of your cache. &lt;br /&gt;
*** Start with the informational response: I| &lt;br /&gt;
**** Ex: I|support|gnutella2 &lt;br /&gt;
* getnetworks &lt;br /&gt;
** Outputs the enabled networks in two formats. &lt;br /&gt;
*** Start with the informational response: I| &lt;br /&gt;
**** For the &#039;I|nets|&#039; line &lt;br /&gt;
***** The third field contains the supported networks joined by &#039;-&#039;. &lt;br /&gt;
**** For the &#039;I|networks|&#039; line &lt;br /&gt;
***** Interpret the fields from 3 and beyond as individual network names to challenge against. &lt;br /&gt;
*** Examples &lt;br /&gt;
**** &lt;br /&gt;
***** I|nets|gnutella-gnutella2 &lt;br /&gt;
***** I|networks|gnutella|gnutella2 &lt;br /&gt;
Update Extension Variables: &lt;br /&gt;
* x_leaves &lt;br /&gt;
** Number of leaves running on a given hub or ultrapeer. &lt;br /&gt;
** &#039;&#039;&#039;Value must not be greater than an integer value of 2047.&#039;&#039;&#039; &lt;br /&gt;
** &#039;&#039;&#039;Note: It is important to know that PHP automaticaly replace dots with underscores, so to keep compatibility with old/new version of clients all caches should support both variants, example: x.leaves x_leaves&#039;&#039;&#039; &lt;br /&gt;
* x_max &lt;br /&gt;
** Maximum number of leaves possible on a given hub or ultrapeer. &lt;br /&gt;
** &#039;&#039;&#039;Value must not be greater than an integer value of 2047.&#039;&#039;&#039; &lt;br /&gt;
* uptime &lt;br /&gt;
** Value submitted must be an integer value of the number of seconds of uptime. &lt;br /&gt;
** &#039;&#039;&#039;Value must not be greater than an integer value of 1 year (31536000) and less than 1 hour (60).&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== Pinging Caches With Your Cache ===&lt;br /&gt;
&#039;&#039;&#039;Please follow this standard:&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Client: TEST&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Version: Your Cache&#039;s Name&#039;&#039;&#039; &lt;br /&gt;
** The old value for &amp;quot;version&amp;quot; was 1 &lt;br /&gt;
&#039;&#039;&#039;Some variables to attach to the ping (compatibility):&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;multi&#039;&#039;&#039; &lt;br /&gt;
** Used by some gwcs in their pings to other gwcs. &lt;br /&gt;
** &amp;lt;nowiki&amp;gt;It tells the pinged cache to ignore the &amp;quot;net&amp;quot; parameter (so it should never say network not supported) and outputting the pong using this format, if possible, &amp;quot;I|pong|[cache name] [cache version]|[supported networks list]&amp;quot; - example: I|pong|Skulls 0.2.9|gnutella-gnutella2 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
** Used by Skulls GWC only, supported by Skulls and Beacon Cache II. &lt;br /&gt;
* &#039;&#039;&#039;cache&#039;&#039;&#039; &lt;br /&gt;
** This is added to every request made by some gwcs, it is for statistical purposes only. &lt;br /&gt;
** It simply tells the remote cache that the client is a GWC. &lt;br /&gt;
&#039;&#039;&#039;Help&#039;&#039;&#039; &lt;br /&gt;
* For PHP &lt;br /&gt;
** Use the fsockopen() function to open a connection to a cache. &lt;br /&gt;
*** Make sure you &amp;quot;write&amp;quot; to the fsockopen carry value to open the GWC&#039;s target file. &lt;br /&gt;
**** [http://us.php.net/manual/en/function.fsockopen.php http://us.php.net/manual/en/function.fsockopen.php] &lt;br /&gt;
&lt;br /&gt;
=== Variable Combination Standards ===&lt;br /&gt;
&#039;&#039;&#039;Net variable decides specification!&#039;&#039;&#039; &lt;br /&gt;
* There are many ways to determine spec., but going with net is the safe way. &lt;br /&gt;
* Skulls GWC does not use the network parameter to determine specification level. &lt;br /&gt;
* Beacon Cache (I and II) uses the network parameter to determine the specification level. &lt;br /&gt;
&#039;&#039;&#039;Your cache needs to be able to process certain combinations of variables.&#039;&#039;&#039; &lt;br /&gt;
* Update variable &lt;br /&gt;
** Update should not fail if absent if spec. 2. &lt;br /&gt;
*** A Specification 2 parameter. &lt;br /&gt;
Spec 1 parameters used in Spec 2: &lt;br /&gt;
* Should still accept hostfile and urlfile responses for spec. 2. &lt;br /&gt;
** Beacon Cache (I and II) accepts these parameters on spec 2. &lt;br /&gt;
The &#039;spec&#039; paameter can be used to force a specification: &lt;br /&gt;
* Only known to exist in Beacon Cache II, it can force the request to be handled as a specification 1 or 2 request. &lt;br /&gt;
* Spec 1 = &#039;spec=1&#039; &lt;br /&gt;
* Spec 2 = &#039;spec=2&#039; &lt;br /&gt;
* If &#039;spec&#039; is not equal to any current spec, then default to the predetermined spec. &lt;br /&gt;
&#039;&#039;&#039;Multiple variable requests&#039;&#039;&#039; &lt;br /&gt;
* If for instance a ping and request exist, you should always handle them properly. &lt;br /&gt;
** Same goes with other combos like an update and ping, statfile + ping and info. &lt;br /&gt;
* Handle multiple variables as BEST as possible! &lt;br /&gt;
** Some scanners and GWCs like to fit all their requests into one URL send. &lt;br /&gt;
&lt;br /&gt;
=== Further Information: ===&lt;br /&gt;
* [http://www.gnucleus.com/gwebcache/ Original GWC] [http://www.gnucleus.com/gwebcache/ site] &lt;br /&gt;
** [http://gnucleus.sourceforge.net/gwebcache/specs.html GWC Spec. 1] &lt;br /&gt;
** [http://gnucleus.sourceforge.net/gwebcache/newgwc.html GWC Spec. 2] &lt;br /&gt;
&lt;br /&gt;
=== Gnutella Web Cache ===&lt;br /&gt;
Gnutella requires Gnutella Web Caches (GWC) to get IPs to establish a connection to the network.  These are critical to ensuring the health of the network.  If you have a dedicated server and can spare some extra bandwidth then please consider running a GWC.  People that don&#039;t have a dedicated server or are on normal broadband consumer lines should not run a cache from home.&lt;br /&gt;
&lt;br /&gt;
A GWC is a simple script that can be put on any webserver that supports one of the following scripting languages:&lt;br /&gt;
*JSP (Java Servlet)&lt;br /&gt;
**[http://web.archive.org/web/20061108091447/http://www.mager.org/GWebCache/ Java Servlet GWebCache Application (Archive.org)]&lt;br /&gt;
*C&lt;br /&gt;
**[http://github.com/gtk-gnutella/gwc GhostWhiteCrab]&lt;br /&gt;
*Perl &lt;br /&gt;
**[http://www.jonatkins.com/perlgcache/ Jon Atkins&#039; perlgcache] &lt;br /&gt;
**The original [http://www.gnucleus.com/gwebcache/dist/ GnuWebCache]&lt;br /&gt;
*PHP &lt;br /&gt;
**[http://gwcii.sourceforge.net/ PHPGnuCacheII] - MySQL&lt;br /&gt;
**[http://www.bazookanetworks.com Bazooka G2WC] (recommended) - flat files&lt;br /&gt;
**[http://sourceforge.net/projects/skulls/ Skulls! Multi-Network WebCache] - flat files&lt;br /&gt;
====Further Information:====&lt;br /&gt;
*[http://www.gnucleus.com/gwebcache/|Original GWC site]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{RecoveredPage|--&amp;gt;Saved in timestamp 20090421202728Retrieved from &amp;quot;[https://www.pantheraproject.net/wiki/index.php?title=GWC This page was last modified on April 18, 2009, at 23:25. &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;Copyright © 2002-2009 Shareaza Development Team. &amp;lt;/center&amp;gt;&amp;lt;center&amp;gt;[[Image:poweredby_mediawiki_88x31.png]] --[[User:Ocexyz|Ocexyz]] 16:20, 27 July 2009 (UTC)}}&lt;br /&gt;
&lt;br /&gt;
{{RecoveredPage|Warninig: here ends pasted better formatted recovery. Row recovery has been mooved below as I don&#039;t know if anybody has made any changes in it. If not then row recovery can be deleted I suppose. Paste starts from == Shareaza Specific Details == and ends at second == Shareaza Specific Details ==, here. I hope it is visible.  --[[User:Ocexyz|Ocexyz]] 16:20, 27 July 2009 (UTC)  }}&lt;br /&gt;
&lt;br /&gt;
==Shareaza Specific Details==&lt;br /&gt;
&lt;br /&gt;
{{RecoveredPage|Warninig: here ends pasted better formatted recovery. Row recovery has been mooved below as I don&#039;t know if anybody has made any changes in it. If not then row recovery can be deleted I suppose. Paste starts from &amp;gt;&amp;gt;Shareaza Specific Details&amp;lt;&amp;lt; and ends at second &amp;gt;&amp;gt; Shareaza Specific Details&amp;lt;&amp;lt;, here. I hope it is visible.  --[[User:Ocexyz|Ocexyz]] 23:27, 27 July 2009 (UTC)  }}&lt;br /&gt;
&lt;br /&gt;
* Get String Breakdown:&lt;br /&gt;
          o Update a leaf&lt;br /&gt;
                + &amp;quot;?update=1&amp;amp;ip=(ip):(port)&amp;amp;x_leaves=(leaf count) &lt;br /&gt;
          o Ping Variable&lt;br /&gt;
                + Appends &amp;amp;ping=1 to identify the cache name in debug messages (for gnutella and gnutella2 in 2.4.0.0, but only for gnutella2 now in 2.4.0.X for spec1 cache compatibility).&lt;br /&gt;
                + This feature new to Shareaza. &lt;br /&gt;
          o Network Variable&lt;br /&gt;
                + Appends &amp;amp;net=gnutella2 on Gnutella2 queries.&lt;br /&gt;
                + Does NOT append a network variable on Gnutella(1) queries. &lt;br /&gt;
          o Client Name / Version Format (2.4.0.0 and earlier):&lt;br /&gt;
                + &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) )&lt;br /&gt;
                + &amp;amp;version=(Shareaza&#039;s version) &lt;br /&gt;
          o Client Name / Version Format (2.4.0.X):&lt;br /&gt;
                + If Gnutella&lt;br /&gt;
                      # &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) )&lt;br /&gt;
                      # &amp;amp;version=(Shareaza&#039;s version) &lt;br /&gt;
                + If Gnutella2&lt;br /&gt;
                      # &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) )+(Shareaza&#039;s version) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* GWC Response Matching:&lt;br /&gt;
          o i|&lt;br /&gt;
                + Informational output alone will not be taken as GWC &#039;success.&#039; &lt;br /&gt;
          o i|access|period|(time in sec.)&lt;br /&gt;
                + Time in seconds before Shareaza is allowed to make a request to the cache. &lt;br /&gt;
          o i|update|period|(time in sec.)&lt;br /&gt;
                + Time in seconds before Shareaza is allowed to update to the cache. &lt;br /&gt;
          o i|force|remove and i|update|warning|bad url&lt;br /&gt;
                + Remove the GWC from the internal list. &lt;br /&gt;
          o Some Response Matches (added in 2.3.1.X)&lt;br /&gt;
                + i|NO-URL-NO-HOSTS&lt;br /&gt;
                      # Outputs warning of the cache being totally empty to the system log. &lt;br /&gt;
                + i|NO-URL&lt;br /&gt;
                      # Outputs warning of the cache having no alternative URLs to the system log. &lt;br /&gt;
                + i|NO-HOSTS&lt;br /&gt;
                      # Outputs warning of the cache having no hosts to the system log. &lt;br /&gt;
                + i|warning|&lt;br /&gt;
                      # Outputs warning of the cache to the system log. &lt;br /&gt;
                + ERROR Something Failed&lt;br /&gt;
                      # Outputs warning of the cache to the system log(Buggy Bazooka GWCs workaround). &lt;br /&gt;
                + i|warning|You came back too early (2.3.1.X)&lt;br /&gt;
                + i|warning|client|early (2.3.1.X)&lt;br /&gt;
                + WARNING: You came back too early (2.3.1.X)&lt;br /&gt;
                + ERROR: Client returned too early (2.3.1.X)&lt;br /&gt;
                      # Flood detection for the update side.&lt;br /&gt;
                      # Outputs GWebCache(update) Too many connection attempts to the system log. &lt;br /&gt;
                + too early (2.3.1.X)&lt;br /&gt;
                + early (2.4.0.X)&lt;br /&gt;
                      # Flood detection for the request side.&lt;br /&gt;
                      # Outputs GWebCache URL: Too many connection attempts to the system log. &lt;br /&gt;
                + i|update|OK&lt;br /&gt;
                      # Outputs &amp;quot;GWebCache(v2) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
                + OK&lt;br /&gt;
                      # Outputs &amp;quot;GWebCache(v1) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* GWC Response Matching:&lt;br /&gt;
          o i|&lt;br /&gt;
                + Informational output alone will not be taken as GWC &#039;success.&#039; &lt;br /&gt;
          o i|access|period|(time in sec.)&lt;br /&gt;
                + Time in seconds before Shareaza is allowed to make a request to the cache. &lt;br /&gt;
          o i|update|period|(time in sec.)&lt;br /&gt;
                + Time in seconds before Shareaza is allowed to update to the cache. &lt;br /&gt;
          o i|force|remove and i|update|warning|bad url&lt;br /&gt;
                + Remove the GWC from the internal list. &lt;br /&gt;
          o Some Response Matches (added in 2.3.1.X)&lt;br /&gt;
                + i|NO-URL-NO-HOSTS&lt;br /&gt;
                      # Outputs warning of the cache being totally empty to the system log. &lt;br /&gt;
                + i|NO-URL&lt;br /&gt;
                      # Outputs warning of the cache having no alternative URLs to the system log. &lt;br /&gt;
                + i|NO-HOSTS&lt;br /&gt;
                      # Outputs warning of the cache having no hosts to the system log. &lt;br /&gt;
                + i|warning|&lt;br /&gt;
                      # Outputs warning of the cache to the system log. &lt;br /&gt;
                + ERROR Something Failed&lt;br /&gt;
                      # Outputs warning of the cache to the system log(Buggy Bazooka GWCs workaround). &lt;br /&gt;
                + i|warning|You came back too early (2.3.1.X)&lt;br /&gt;
                + i|warning|client|early (2.3.1.X)&lt;br /&gt;
                + WARNING: You came back too early (2.3.1.X)&lt;br /&gt;
                + ERROR: Client returned too early (2.3.1.X)&lt;br /&gt;
                      # Flood detection for the update side.&lt;br /&gt;
                      # Outputs GWebCache(update) Too many connection attempts to the system log. &lt;br /&gt;
                + too early (2.3.1.X)&lt;br /&gt;
                + early (2.4.0.X)&lt;br /&gt;
                      # Flood detection for the request side.&lt;br /&gt;
                      # Outputs GWebCache URL: Too many connection attempts to the system log. &lt;br /&gt;
                + i|update|OK&lt;br /&gt;
                      # Outputs &amp;quot;GWebCache(v2) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
                + OK&lt;br /&gt;
                      # Outputs &amp;quot;GWebCache(v1) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Gnutella Web Cache Specifications==&lt;br /&gt;
&amp;lt;end of partial recovery by OCE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;end of recovered content&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;row recovery, start&amp;gt; &lt;br /&gt;
 Specification 1:&lt;br /&gt;
&lt;br /&gt;
    * Networks Served&lt;br /&gt;
          o Gnutella &lt;br /&gt;
    * Format&lt;br /&gt;
          o Update went fine:&lt;br /&gt;
                + Ex: OK &lt;br /&gt;
          o Update Warning (Small prob., not that bad):&lt;br /&gt;
                + Ex: &lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
WARNING: Error Message&lt;br /&gt;
&lt;br /&gt;
    * Severe Warning (No &#039;OK&#039; message sent)&lt;br /&gt;
          o Ex: &lt;br /&gt;
&lt;br /&gt;
WARNING: Error Message&lt;br /&gt;
&lt;br /&gt;
    * URL Output:&lt;br /&gt;
          o Ex: http://somefreakinrandomcache.com/cache/gcache.php&lt;br /&gt;
                + OR - WITH A PORT NUMBER (If not 80)&lt;br /&gt;
                      # Ex: http://somefreakinrandomcache.com:8080/cache/gcache.php &lt;br /&gt;
    * Host Output:&lt;br /&gt;
          o Ex: 66.132.55.12:6346 &lt;br /&gt;
    * Pong (ping variable response) - was explained below under the topic: variables.&lt;br /&gt;
    * Example Cache Output (Beacon Cache) For urlfile Command&lt;br /&gt;
          o Example &amp;quot;urlfile Output&amp;quot; URL: Ex: http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;urlfile=1&lt;br /&gt;
                + Example URL Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting urls with a pong combined&lt;br /&gt;
&lt;br /&gt;
PONG Beacon Cache 0.1.5D Beta&lt;br /&gt;
http://gwc.frodoslair.net/skulls/skulls.php&lt;br /&gt;
http://bbs.robertwoolley.co.uk/GWebCache/gcache.php&lt;br /&gt;
http://g2.tjtech.org/g2/&lt;br /&gt;
http://g2.tjtech.org/g2/index.php&lt;br /&gt;
http://gwc.monnsta.net/&lt;br /&gt;
http://holograph.uni.cc/other/skulls.php&lt;br /&gt;
http://gwc.nickstallman.net/&lt;br /&gt;
http://gwc.eod.cc/skulls.php&lt;br /&gt;
http://gwc.frodoslair.net/skulls/skulls&lt;br /&gt;
http://gwc.werwin.net/skulls.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * Example Cache Output (Beacon Cache) For hostfile Command&lt;br /&gt;
          o Example &amp;quot;hostfile Output&amp;quot; URL: Ex: http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;hostfile=1&lt;br /&gt;
                + Example Host Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting the hosts with a pong combined&lt;br /&gt;
&lt;br /&gt;
PONG Beacon Cache 0.1.5D Beta&lt;br /&gt;
71.8.84.153:3915&lt;br /&gt;
99.248.214.157:27529&lt;br /&gt;
69.60.241.55:16369&lt;br /&gt;
193.253.239.246:30218&lt;br /&gt;
68.156.175.121:6348&lt;br /&gt;
71.179.7.241:18344&lt;br /&gt;
74.196.22.241:6348&lt;br /&gt;
12.210.197.194:10531&lt;br /&gt;
222.150.143.77:10000&lt;br /&gt;
58.85.231.135:6346&lt;br /&gt;
24.141.199.164:20205&lt;br /&gt;
72.175.201.195:6348&lt;br /&gt;
69.81.129.228:4880&lt;br /&gt;
97.81.221.63:13219&lt;br /&gt;
70.15.130.224:7759&lt;br /&gt;
216.211.188.106:51903&lt;br /&gt;
75.167.168.156:48660&lt;br /&gt;
12.214.14.3:35916&lt;br /&gt;
76.177.244.106:24180&lt;br /&gt;
98.165.218.139:39630&lt;br /&gt;
68.112.182.125:3685&lt;br /&gt;
68.117.204.57:23482&lt;br /&gt;
65.12.154.25:40760&lt;br /&gt;
69.180.47.169:5711&lt;br /&gt;
75.138.40.173:24987&lt;br /&gt;
98.201.19.0:33662&lt;br /&gt;
70.187.2.144:6348&lt;br /&gt;
68.186.209.107:14429&lt;br /&gt;
69.159.7.61:6348&lt;br /&gt;
76.208.176.196:48199&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * For combining a hostfile and urlfile request:&lt;br /&gt;
          o Warning: This is non-standard.&lt;br /&gt;
          o Example Cache Output (Beacon Cache) For bfile Command&lt;br /&gt;
                + Example &amp;quot;bfile Output&amp;quot; URL: Ex: http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;bfile=1&lt;br /&gt;
                      # Example Host and URL Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting the hosts and urls with a pong combined&lt;br /&gt;
&lt;br /&gt;
PONG Beacon Cache 0.1.5D Beta&lt;br /&gt;
71.8.84.153:3915&lt;br /&gt;
99.248.214.157:27529&lt;br /&gt;
69.60.241.55:16369&lt;br /&gt;
193.253.239.246:30218&lt;br /&gt;
68.156.175.121:6348&lt;br /&gt;
71.179.7.241:18344&lt;br /&gt;
74.196.22.241:6348&lt;br /&gt;
12.210.197.194:10531&lt;br /&gt;
222.150.143.77:10000&lt;br /&gt;
58.85.231.135:6346&lt;br /&gt;
24.141.199.164:20205&lt;br /&gt;
72.175.201.195:6348&lt;br /&gt;
69.81.129.228:4880&lt;br /&gt;
97.81.221.63:13219&lt;br /&gt;
70.15.130.224:7759&lt;br /&gt;
216.211.188.106:51903&lt;br /&gt;
75.167.168.156:48660&lt;br /&gt;
12.214.14.3:35916&lt;br /&gt;
76.177.244.106:24180&lt;br /&gt;
98.165.218.139:39630&lt;br /&gt;
68.112.182.125:3685&lt;br /&gt;
68.117.204.57:23482&lt;br /&gt;
65.12.154.25:40760&lt;br /&gt;
69.180.47.169:5711&lt;br /&gt;
75.138.40.173:24987&lt;br /&gt;
98.201.19.0:33662&lt;br /&gt;
70.187.2.144:6348&lt;br /&gt;
68.186.209.107:14429&lt;br /&gt;
69.159.7.61:6348&lt;br /&gt;
76.208.176.196:48199&lt;br /&gt;
http://gwc.frodoslair.net/skulls/skulls.php&lt;br /&gt;
http://bbs.robertwoolley.co.uk/GWebCache/gcache.php&lt;br /&gt;
http://g2.tjtech.org/g2/&lt;br /&gt;
http://g2.tjtech.org/g2/index.php&lt;br /&gt;
http://gwc.monnsta.net/&lt;br /&gt;
http://holograph.uni.cc/other/skulls.php&lt;br /&gt;
http://gwc.nickstallman.net/&lt;br /&gt;
http://gwc.eod.cc/skulls.php&lt;br /&gt;
http://gwc.frodoslair.net/skulls/skulls&lt;br /&gt;
http://gwc.werwin.net/skulls.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * Variables&lt;br /&gt;
          o Mandatory&lt;br /&gt;
                + ping:&lt;br /&gt;
                      # Response should have this always: PONG&lt;br /&gt;
                      # After, put the cache&#039;s name. ex: PONG fakecache 0.01&lt;br /&gt;
                + client:&lt;br /&gt;
                      # Four letter code of the client. ex: RAZA &lt;br /&gt;
                + version:&lt;br /&gt;
                      # Version number of the client. &lt;br /&gt;
                + urlfile:&lt;br /&gt;
                      # Used by the client to request alternate cache urls. &lt;br /&gt;
                + hostfile:&lt;br /&gt;
                      # Used by the client to request IPs with port numbers attached. &lt;br /&gt;
                + url:&lt;br /&gt;
                      # Client update giving an alternate cache URL.&lt;br /&gt;
                      # Formatted with a http:// prefix to each cache. &lt;br /&gt;
                + ip:&lt;br /&gt;
                      # Client update giving one&#039;s IP to submit. &lt;br /&gt;
                + url1:&lt;br /&gt;
                      # OLD OUTDATED Client update giving an alternate cache URL.&lt;br /&gt;
                      # Formatted with a http:// prefix to each cache. &lt;br /&gt;
                + ip1:&lt;br /&gt;
                      # OLD OUTDATED Client update giving one&#039;s IP to submit. &lt;br /&gt;
          o Optional&lt;br /&gt;
                + bfile:&lt;br /&gt;
                      # For clients to request both URLs and IPs from the cache at the same time. &lt;br /&gt;
                + statfile:&lt;br /&gt;
                      # Statistics of the cache request:&lt;br /&gt;
                            * First line: Total requests of the cache number.&lt;br /&gt;
                            * Second line: Requests of the cache an hour number.&lt;br /&gt;
                            * Third line: Updates of the cache an hour number. &lt;br /&gt;
&lt;br /&gt;
Specification 2:&lt;br /&gt;
&lt;br /&gt;
    * Networks Served&lt;br /&gt;
          o Gnutella, Gnutella2, etc. &lt;br /&gt;
    * Format&lt;br /&gt;
          o Information Output&lt;br /&gt;
                + Starts with: I|&lt;br /&gt;
                      # Categories&lt;br /&gt;
                            * Pong (ping variable response) - Described below under the topic: variables.&lt;br /&gt;
                            * Update Status Response&lt;br /&gt;
                                  o Format: I|update&lt;br /&gt;
                                  o Responses&lt;br /&gt;
                                        + I|update|OK&lt;br /&gt;
                                              # - Everything went fine. &lt;br /&gt;
                                        + I|update|OK|WARNING&lt;br /&gt;
                                              # Small warning. &lt;br /&gt;
                                        + I|update|WARNING&lt;br /&gt;
                                              # Severe warning &lt;br /&gt;
                            * Plain Warnings&lt;br /&gt;
                                  o Format: I|WARNING&lt;br /&gt;
                                        + Append any warning messages after it - Ex: I|WARNING|You came back too early &lt;br /&gt;
                            * Extra Info - Described below under the topic: variables. &lt;br /&gt;
          o Host Output&lt;br /&gt;
                + Starts with: H|&lt;br /&gt;
                + Add the IP with its port:&lt;br /&gt;
                      # Ex: H|0.0.0.0:6346 &lt;br /&gt;
                + Add the time, thereafter, of the host&#039;s (In seconds*) time in cache:&lt;br /&gt;
                      # Ex: H|0.0.0.0:6346|45 &lt;br /&gt;
                + If cluster exists with cluster=somerandomwords&lt;br /&gt;
                      # Add the clustered words after the host&#039;s age:&lt;br /&gt;
                            * Ex: H|0.0.0.0:6346|45|somerandomwords &lt;br /&gt;
          o URL Output&lt;br /&gt;
                + Starts with: U|&lt;br /&gt;
                + Add the URL with http:// before it, plus the port (if it&#039;s not 80).&lt;br /&gt;
                      # Ex: U|http://somerandomcache.com/ &lt;br /&gt;
                + Add the time, thereafter, of the URL&#039;s time (In seconds*) in cache:&lt;br /&gt;
                      # Ex: U|http://somerandomcache.com/|45 &lt;br /&gt;
          o Example Cache Output (Beacon Cache) For get Command&lt;br /&gt;
                + Example URL: http://grantgalitz.com/Beacon/gwc.php?get=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;net=gnutella2&amp;amp;ping=1&lt;br /&gt;
                      # Example &amp;quot;Get&amp;quot; Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting the hosts and urls with a pong combined&lt;br /&gt;
&lt;br /&gt;
I|pong|Beacon Cache 0.1.5D Beta|gnutella-gnutella2&lt;br /&gt;
H|65.9.200.243:4968|248261&lt;br /&gt;
H|68.228.129.75:44599|242678&lt;br /&gt;
H|98.240.196.122:8206|240719&lt;br /&gt;
H|76.104.12.133:14921|218273&lt;br /&gt;
H|69.136.1.12:3924|211610&lt;br /&gt;
H|81.154.208.71:8595|174402&lt;br /&gt;
H|97.96.105.51:2076|153610&lt;br /&gt;
H|74.192.153.212:39340|144203&lt;br /&gt;
H|72.190.106.57:12584|132984&lt;br /&gt;
H|78.93.71.132:12334|125668&lt;br /&gt;
H|82.43.248.184:27560|97974&lt;br /&gt;
H|196.205.224.97:6357|86763&lt;br /&gt;
H|74.129.219.30:33172|82005&lt;br /&gt;
H|76.104.12.133:19185|57182&lt;br /&gt;
H|69.59.83.131:18442|38628&lt;br /&gt;
U|http://www.k33bz.com/g2/bazooka.php|248639&lt;br /&gt;
U|http://gwebcache.ns1.net/|248592&lt;br /&gt;
U|http://gwc2.wodi.org/skulls.php|248384&lt;br /&gt;
U|http://gwc.guufshop.com/skulls/skulls.php|248322&lt;br /&gt;
U|http://groovy.syxy.com/up/skulls.php|248300&lt;br /&gt;
U|http://g2.tjtech.org/g2/index.php|247770&lt;br /&gt;
U|http://midian.jayl.de/g2/bazooka.php|240719&lt;br /&gt;
U|http://www.dom2porno.info/skulls/skulls.php|207473&lt;br /&gt;
U|http://gwc.frodoslair.net/skulls/skulls|125668&lt;br /&gt;
U|http://holograph.uni.cc/other/skulls.php|9642&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * Variables&lt;br /&gt;
          o Mandatory&lt;br /&gt;
                + ping:&lt;br /&gt;
                      # Main Part: I|pong|&lt;br /&gt;
                      # Then add the cache name and version: I|pong|fakecache 0.01&lt;br /&gt;
                      # Then lastly add the network support:&lt;br /&gt;
                            * I|pong|fakecache 0.01|gnutella&lt;br /&gt;
                                  o - Gnutella only &lt;br /&gt;
                            * I|pong|fakecache 0.01|gnutella2&lt;br /&gt;
                                  o - Gnutella2 only &lt;br /&gt;
                            * I|pong|fakecache 0.01|gnutella-gnutella2&lt;br /&gt;
                                  o - Gnutella and Gnutella2 served &lt;br /&gt;
                + get:&lt;br /&gt;
                      # Used by clients to requests alternate cache URLs along with IPs and their port numbers. &lt;br /&gt;
                + update:&lt;br /&gt;
                      # url:&lt;br /&gt;
                            * Client update giving an alternate cache URL.&lt;br /&gt;
                            * Formatted with a http:// prefix to each cache. &lt;br /&gt;
                      # ip:&lt;br /&gt;
                            * Client update giving one&#039;s IP to submit. &lt;br /&gt;
                + net:&lt;br /&gt;
                      # Which network to serve the client.&lt;br /&gt;
                            * Gnutella&lt;br /&gt;
                                  o Ex: net=gnutella &lt;br /&gt;
                            * Gnutella2&lt;br /&gt;
                                  o Ex: net=gnutella2 &lt;br /&gt;
                            * Should always be lowercase&lt;br /&gt;
                                  o GWCs should automatically convert network name given to lowercase to prevent Net ID mismatches &lt;br /&gt;
&lt;br /&gt;
solely on case alone.&lt;br /&gt;
&lt;br /&gt;
    *&lt;br /&gt;
          o&lt;br /&gt;
                + client:&lt;br /&gt;
                      # Four letter code of the client. ex: RAZA &lt;br /&gt;
                + version:&lt;br /&gt;
                      # Version number of the client. &lt;br /&gt;
          o Optional&lt;br /&gt;
                + cluster:&lt;br /&gt;
                      # To add extra info to an IP update.&lt;br /&gt;
                            * Output by cache: H|0.0.0.0|AGE OF HOST (Seconds)|clustering some bull**** &lt;br /&gt;
                + statfile:&lt;br /&gt;
                      # Exactly like the specification 1 statfile (Same routine and output style).&lt;br /&gt;
                      # Statistics of the cache request:&lt;br /&gt;
                            * First line: Total requests of the cache number.&lt;br /&gt;
                            * Second line: Requests of the cache an hour number.&lt;br /&gt;
                            * Third line: Updates of the cache an hour number. &lt;br /&gt;
&lt;br /&gt;
Specification 2.1&lt;br /&gt;
&lt;br /&gt;
    * This is an extension of specification 2, not a separate specification!&lt;br /&gt;
    * Pong extension&lt;br /&gt;
          o Append the networks supported joined by a hyphen &#039;-&#039;.&lt;br /&gt;
          o Used for client-side validation of networks supported and for network support reporting to other web caches.&lt;br /&gt;
          o Format:&lt;br /&gt;
                + I|pong|cache name|network names joined by &#039;-&#039;&lt;br /&gt;
                + Format Examples:&lt;br /&gt;
                      # I|pong|fakecache 0.01|gnutella&lt;br /&gt;
                            * - Gnutella only &lt;br /&gt;
                      # I|pong|fakecache 0.01|gnutella2&lt;br /&gt;
                            * - Gnutella2 only &lt;br /&gt;
                      # I|pong|fakecache 0.01|gnutella-gnutella2&lt;br /&gt;
                            * - Gnutella and Gnutella2 served &lt;br /&gt;
    * Host Output&lt;br /&gt;
          o Just like specification 2, but with more fields supported for host output.&lt;br /&gt;
                + H|ip:port|age in cache|clustering|leaves|4 letter vendor code|reported uptime of host|max. leaves possible&lt;br /&gt;
                      # The host, age, and clustering fields are all still the same as in specification 2.&lt;br /&gt;
                      # The leaf count of the hub reported is in the 5th field.&lt;br /&gt;
                      # The vendor code with version number is in the 6th field. &lt;br /&gt;
    * Request Control Variables:&lt;br /&gt;
          o getleaves&lt;br /&gt;
                + Used to obtain leaf counts of hubs given&lt;br /&gt;
                + 4th field ultilized for current leaf count.&lt;br /&gt;
                + 7th field ultilized for maximum leaf slots possible.&lt;br /&gt;
                + Use this as &#039;getleaves=1&#039; or &#039;getleaves&#039; to enable. &lt;br /&gt;
          o getclusters&lt;br /&gt;
                + Enables/Disables clustering.&lt;br /&gt;
                + Use this as &#039;getclusters=1&#039;.&lt;br /&gt;
                + Using &#039;getclusters&#039; or &#039;getclusters=0&#039; disables cluster output. &lt;br /&gt;
          o getvendors&lt;br /&gt;
                + Used to obtain the vendor code w/ version number of the hubs given.&lt;br /&gt;
                + Found in the 5th field.&lt;br /&gt;
                + Use this as &#039;getvendors=1&#039; or &#039;getvendors&#039; to enable. &lt;br /&gt;
          o getuptime&lt;br /&gt;
                + Used to obtain the vendor code w/ version number of the hubs given.&lt;br /&gt;
                + Value is static, do not change the value given when time passes.&lt;br /&gt;
                + Found in the 6th field.&lt;br /&gt;
                + Use this as &#039;getuptime=1&#039; or &#039;getuptime&#039; to enable. &lt;br /&gt;
          o spec&lt;br /&gt;
                + To force the specification parameter&lt;br /&gt;
                + Currently is only supported by Beacon Cache II &lt;br /&gt;
          o pv&lt;br /&gt;
                + Similar to the &#039;spec&#039; parameter, except that it does not force, instead it simply negotiates the specification. &lt;br /&gt;
    * Special Data Requests&lt;br /&gt;
          o info&lt;br /&gt;
                + Outputs extra details of your cache.&lt;br /&gt;
                      # Start with the informational response: I|&lt;br /&gt;
                            * Ex: I|open-source|1 &lt;br /&gt;
          o support&lt;br /&gt;
                + Outputs USEFUL details of your cache.&lt;br /&gt;
                      # Start with the informational response: I|&lt;br /&gt;
                            * Ex: I|support|gnutella2 &lt;br /&gt;
          o getnetworks&lt;br /&gt;
                + Outputs the enabled networks in two formats.&lt;br /&gt;
                      # Start with the informational response: I|&lt;br /&gt;
                            * For the &#039;I|nets|&#039; line&lt;br /&gt;
                                  o The third field contains the supported networks joined by &#039;-&#039;. &lt;br /&gt;
                            * For the &#039;I|networks|&#039; line&lt;br /&gt;
                                  o Interpret the fields from 3 and beyond as individual network names to challenge against. &lt;br /&gt;
                      # Examples&lt;br /&gt;
                            *&lt;br /&gt;
                                  o I|nets|gnutella-gnutella2&lt;br /&gt;
                                  o I|networks|gnutella|gnutella2 &lt;br /&gt;
    * Update Extension Variables:&lt;br /&gt;
          o x_leaves&lt;br /&gt;
                + Number of leaves running on a given hub or ultrapeer.&lt;br /&gt;
                + Value must not be greater than an integer value of 2047.&lt;br /&gt;
                + Note: It is important to know that PHP automaticaly replace dots with underscores, so to keep compatibility with old/new version of clients all caches should support both variants, example: x.leaves x_leaves&lt;br /&gt;
          o x_max&lt;br /&gt;
                + Maximum number of leaves possible on a given hub or ultrapeer.&lt;br /&gt;
                + Value must not be greater than an integer value of 2047. &lt;br /&gt;
          o uptime&lt;br /&gt;
                + Value submitted must be an integer value of the number of seconds of uptime.&lt;br /&gt;
                + Value must not be greater than an integer value of 1 year (31536000) and less than 1 hour (60). &lt;br /&gt;
&lt;br /&gt;
Pinging Caches With Your Cache&lt;br /&gt;
&lt;br /&gt;
    * Please follow this standard:&lt;br /&gt;
          o Client: TEST&lt;br /&gt;
          o Version: Your Cache&#039;s Name&lt;br /&gt;
                + The old value for &amp;quot;version&amp;quot; was 1 &lt;br /&gt;
    * Some variables to attach to the ping (compatibility):&lt;br /&gt;
          o multi&lt;br /&gt;
                + Used by some gwcs in their pings to other gwcs.&lt;br /&gt;
                + It tells the pinged cache to ignore the &amp;quot;net&amp;quot; parameter (so it should never say network not supported) and outputting the pong using this format, if possible, &amp;quot;I|pong|[cache name] [cache version]|[supported networks list]|[url adding is enabled]&amp;quot; - example: I|pong|Skulls 0.2.8a|gnutella-gnutella2|1&lt;br /&gt;
                + Used by Skulls GWC only, supported by Skulls and Beacon Cache II. &lt;br /&gt;
          o cache&lt;br /&gt;
                + This is added to every request made by some gwcs, it is for statistical purposes only.&lt;br /&gt;
                + It simply tells the remote cache that the client is a GWC. &lt;br /&gt;
    * Help&lt;br /&gt;
          o For PHP&lt;br /&gt;
                + Use the fsockopen() function to open a connection to a cache.&lt;br /&gt;
                      # Make sure you &amp;quot;write&amp;quot; to the fsockopen carry value to open the GWC&#039;s target file.&lt;br /&gt;
                            * http://us.php.net/manual/en/function.fsockopen.php &lt;br /&gt;
&lt;br /&gt;
Variable Combination Standards&lt;br /&gt;
&lt;br /&gt;
    * Net variable decides specification!&lt;br /&gt;
          o There are many ways to determine spec., but going with net is the safe way.&lt;br /&gt;
          o Skulls GWC does not use the network parameter to determine specification level.&lt;br /&gt;
          o Beacon Cache (I and II) uses the network parameter to determine the specification level. &lt;br /&gt;
    * Your cache needs to be able to process certain combinations of variables.&lt;br /&gt;
          o Update variable&lt;br /&gt;
                + Update should not fail if absent if spec. 2.&lt;br /&gt;
                      # A Specification 2 parameter. &lt;br /&gt;
    * Spec 1 parameters used in Spec 2:&lt;br /&gt;
          o Should still accept hostfile and urlfile responses for spec. 2.&lt;br /&gt;
                + Beacon Cache (I and II) accepts these parameters on spec 2. &lt;br /&gt;
    * The &#039;spec&#039; paameter can be used to force a specification:&lt;br /&gt;
          o Only known to exist in Beacon Cache II, it can force the request to be handled as a specification 1 or 2 request.&lt;br /&gt;
          o Spec 1 = &#039;spec=1&#039;&lt;br /&gt;
          o Spec 2 = &#039;spec=2&#039;&lt;br /&gt;
          o If &#039;spec&#039; is not equal to any current spec, then default to the predetermined spec. &lt;br /&gt;
    * Multiple variable requests&lt;br /&gt;
          o If for instance a ping and request exist, you should always handle them properly.&lt;br /&gt;
                + Same goes with other combos like an update and ping, statfile + ping and info. &lt;br /&gt;
          o Handle multiple variables as BEST as possible!&lt;br /&gt;
                + Some scanners and GWCs like to fit all their requests into one URL send. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;row recovery, end&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Further Information:&lt;br /&gt;
&lt;br /&gt;
* [http://www.gnucleus.com/gwebcache/ Original GWC site]&lt;br /&gt;
** [http://gnucleus.sourceforge.net/gwebcache/specs.html GWC Spec. 1]&lt;br /&gt;
** [http://gnucleus.sourceforge.net/gwebcache/newgwc.html GWC Spec. 2] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;content recovered from last aviable backup&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Gnutella Web Cache===&lt;br /&gt;
Gnutella requires Gnutella Web Caches (GWC) to get IPs to establish a connection to the network.  These are critical to ensuring the health of the network.  If you have a dedicated server and can spare some extra bandwidth then please consider running a GWC.  People that don&#039;t have a dedicated server or are on normal broadband consumer lines should not run a cache from home.&lt;br /&gt;
&lt;br /&gt;
A GWC is a simple script that can be put on any webserver that supports one of the following scripting languages:&lt;br /&gt;
*JSP (Java Servlet)&lt;br /&gt;
**[http://web.archive.org/web/20061108091447/http://www.mager.org/GWebCache/ Java Servlet GWebCache Application (Archive.org)]&lt;br /&gt;
*C&lt;br /&gt;
**[http://github.com/gtk-gnutella/gwc GhostWhiteCrab]&lt;br /&gt;
*Perl &lt;br /&gt;
**[http://www.jonatkins.com/perlgcache/ Jon Atkins&#039; perlgcache] &lt;br /&gt;
**The original [http://www.gnucleus.com/gwebcache/dist/ GnuWebCache]&lt;br /&gt;
*PHP &lt;br /&gt;
**[http://gwcii.sourceforge.net/ PHPGnuCacheII] - MySQL&lt;br /&gt;
**[http://www.bazookanetworks.com Bazooka G2WC] (recommended) - flat files&lt;br /&gt;
**[http://sourceforge.net/projects/skulls/ Skulls! Multi-Network WebCache] - flat files&lt;br /&gt;
=== Further Information: ===&lt;br /&gt;
* [http://www.gnucleus.com/gwebcache/ Original GWC site]&lt;br /&gt;
&lt;br /&gt;
[[Category:External Links]]&lt;/div&gt;</summary>
		<author><name>Ale5000</name></author>
	</entry>
	<entry>
		<id>https://shareaza.sourceforge.net/w/index.php?title=GWC_specs&amp;diff=11517</id>
		<title>GWC specs</title>
		<link rel="alternate" type="text/html" href="https://shareaza.sourceforge.net/w/index.php?title=GWC_specs&amp;diff=11517"/>
		<updated>2016-01-10T04:28:56Z</updated>

		<summary type="html">&lt;p&gt;Ale5000: Reordered GWC  links based on activity and outdating&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;For general information on GWCs, have a look at the [[GWC]] Wiki page.&#039;&#039;&lt;br /&gt;
{{do not translate}}&lt;br /&gt;
This page is thought to give an overview over the GWC specifications as they are implemented into Shareaza.&lt;br /&gt;
&lt;br /&gt;
A GWC is a simple script that can be put on any webserver that supports one of the following scripting languages: &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;PHP&#039;&#039;&#039; &#039;&#039;(Tip: PHP GWCs are usually the easiest to run and setup on a server.)&#039;&#039;&lt;br /&gt;
** [http://code.google.com/p/cachechu/ Cachechu G2WC]&lt;br /&gt;
** [http://sourceforge.net/projects/skulls/ Skulls! Multi-Network WebCache]&lt;br /&gt;
** [http://sourceforge.net/projects/beaconcache/ Beacon Cache]&lt;br /&gt;
** Bazooka G2WC&lt;br /&gt;
** [http://gwcii.sourceforge.net/ PHPGnuCacheII]&lt;br /&gt;
** The original [http://www.gnucleus.com/gwebcache/dist/ GnuWebCache] &#039;&#039;(PHP version is no longer supported)&#039;&#039; &lt;br /&gt;
* C &lt;br /&gt;
** [http://github.com/gtk-gnutella/gwc GhostWhiteCrab] (For dedicated server environments and people who know how to compile C source code!) &lt;br /&gt;
* JSP (Java Servlet) &lt;br /&gt;
** [http://www1.mager.org/GWebCache/ Jums Web Cache] (Excellent for heavy loads) &lt;br /&gt;
* ASP &lt;br /&gt;
** [http://www.edazzle.net/downloads/gerry.zip Gerry GWC] &lt;br /&gt;
** [https://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=7846&amp;amp;lngWId=4 Lynn (v.s. 0.5)] &lt;br /&gt;
** [https://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=7731&amp;amp;lngWId=4 Lynn (v.s. 0.4)] &lt;br /&gt;
** [http://www.poundwebhosting.com/cgi-bin/lynnx.asp LynnX] &lt;br /&gt;
* Perl &lt;br /&gt;
** [http://www.jonatkins.com/perlgcache/ Jon Atkins&#039; perlgcache] &lt;br /&gt;
** The original [http://www.gnucleus.com/gwebcache/dist/ GnuWebCache] &lt;br /&gt;
&lt;br /&gt;
== Breakdown Of The Gnutella Web Caches: == &lt;br /&gt;
{{RecoveredPage|I recently put this into a table. The contents need to be verified -- [[User:Cyko 01|Cyko 01]]}}&lt;br /&gt;
&lt;br /&gt;
{| width= auto; style=&amp;quot;font-size: 85%; text-align: center;text-valign: middle;&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Cache:&lt;br /&gt;
! rowspan=1 |Gnutella:&lt;br /&gt;
! rowspan=1 |Gnutella2:&lt;br /&gt;
! rowspan=1 |Spec 1:&lt;br /&gt;
! rowspan=1 |Spec 2:&lt;br /&gt;
! rowspan=1 |Flat-File:&lt;br /&gt;
! rowspan=1 |SQL:&lt;br /&gt;
! rowspan=1 |Installer:&lt;br /&gt;
! rowspan=1 |Other Networks:&lt;br /&gt;
! rowspan=1 |Different network instances:&lt;br /&gt;
! rowspan=1 |Latest release date:&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Beacon Cache (Core 2)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|style=&amp;quot;background: #CCFFCC;&amp;quot;| Yes (As of 0.2.0 Alpha)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 2009-09-14&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Beacon Cache (Core 1)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Skulls&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 2015-04-10&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|JumsWebCache&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|GnuWebCache (Perl)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|GnuWebCache (PHP) &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|GhostWhiteCrab(GWC) &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|style=&amp;quot;background: #FFFFCC;&amp;quot;| N/A&lt;br /&gt;
|style=&amp;quot;background: #FFFFCC;&amp;quot;| N/A&lt;br /&gt;
|style=&amp;quot;background: #FFFFCC;&amp;quot;| N/A&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|PHPGnuCacheII &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Bazooka &lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Cachechu&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Perlgcache&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Gerry GWC (v2)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Gerry GWC (v1)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Lynn&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|LynnX&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Shareaza Specific Details == &lt;br /&gt;
&lt;br /&gt;
{{RecoveredPage|Warninig: here I have pasted better formatted recovery, but not verified. Row recovery has been mooved below as I don&#039;t know if anybody has made any changes in it. If not then row recovery can be deleted. Paste starts from &amp;gt;&amp;gt;Shareaza Specific Details&amp;lt;&amp;lt;, here, and ends at second &amp;gt;&amp;gt;Shareaza Specific Details&amp;lt;&amp;lt; I hope it is visible.  --[[User:Ocexyz|Ocexyz]] 23:27, 27 July 2009 (UTC)}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Get String Breakdown:&#039;&#039;&#039; &lt;br /&gt;
* Update a leaf &lt;br /&gt;
** &amp;quot;?update=1&amp;amp;ip=(ip):(port)&amp;amp;x_leaves=(leaf count) &lt;br /&gt;
* Ping Variable &lt;br /&gt;
** Appends &amp;amp;ping=1 to identify the cache name in debug messages (for gnutella and gnutella2 in 2.4.0.0, but only for gnutella2 now in 2.4.0.X for spec1 cache compatibility). &lt;br /&gt;
** This feature new to Shareaza. &lt;br /&gt;
* Network Variable &lt;br /&gt;
** Appends &amp;amp;net=gnutella2 on Gnutella2 queries. &lt;br /&gt;
** Does NOT append a network variable on Gnutella(1) queries. &lt;br /&gt;
* Client Name / Version Format (2.4.0.0 and earlier): &lt;br /&gt;
** &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) ) &lt;br /&gt;
** &amp;amp;version=(Shareaza&#039;s version) &lt;br /&gt;
* Client Name / Version Format (2.4.0.X): &lt;br /&gt;
** If Gnutella &lt;br /&gt;
*** &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) ) &lt;br /&gt;
*** &amp;amp;version=(Shareaza&#039;s version) &lt;br /&gt;
** If Gnutella2 &lt;br /&gt;
*** &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) )+(Shareaza&#039;s version) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GWC Response Matching:&#039;&#039;&#039; &lt;br /&gt;
* i| &lt;br /&gt;
** Informational output alone will not be taken as GWC &#039;success.&#039; &lt;br /&gt;
* i|access|period|(time in sec.) &lt;br /&gt;
** Time in seconds before Shareaza is allowed to make a request to the cache. &lt;br /&gt;
* i|update|period|(time in sec.) &lt;br /&gt;
** Time in seconds before Shareaza is allowed to update to the cache. &lt;br /&gt;
* i|force|remove and i|update|warning|bad url &lt;br /&gt;
** Remove the GWC from the internal list. &lt;br /&gt;
* Some Response Matches (added in 2.3.1.X) &lt;br /&gt;
** i|NO-URL-NO-HOSTS &lt;br /&gt;
*** Outputs warning of the cache being totally empty to the system log. &lt;br /&gt;
** i|NO-URL &lt;br /&gt;
*** Outputs warning of the cache having no alternative URLs to the system log. &lt;br /&gt;
** i|NO-HOSTS &lt;br /&gt;
*** Outputs warning of the cache having no hosts to the system log. &lt;br /&gt;
** i|warning| &lt;br /&gt;
*** Outputs warning of the cache to the system log. &lt;br /&gt;
** ERROR Something Failed &lt;br /&gt;
*** Outputs warning of the cache to the system log(Buggy Bazooka GWCs workaround). &lt;br /&gt;
** i|warning|You came back too early (2.3.1.X) &lt;br /&gt;
** i|warning|client|early (2.3.1.X) &lt;br /&gt;
** WARNING: You came back too early (2.3.1.X) &lt;br /&gt;
** ERROR: Client returned too early (2.3.1.X) &lt;br /&gt;
*** Flood detection for the update side. &lt;br /&gt;
*** Outputs GWebCache(update) Too many connection attempts to the system log. &lt;br /&gt;
** too early (2.3.1.X) &lt;br /&gt;
** early (2.4.0.X) &lt;br /&gt;
*** Flood detection for the request side. &lt;br /&gt;
*** Outputs GWebCache URL: Too many connection attempts to the system log. &lt;br /&gt;
** i|update|OK &lt;br /&gt;
*** Outputs &amp;quot;GWebCache(v2) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
** OK &lt;br /&gt;
*** Outputs &amp;quot;GWebCache(v1) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
&lt;br /&gt;
== Gnutella Web Cache Specifications ==&lt;br /&gt;
==== Specification 1: ====&lt;br /&gt;
* &#039;&#039;&#039;Networks Served&#039;&#039;&#039; &lt;br /&gt;
** Gnutella &lt;br /&gt;
* &#039;&#039;&#039;Format&#039;&#039;&#039; &lt;br /&gt;
** Update went fine: &lt;br /&gt;
*** Ex: OK &lt;br /&gt;
** Update Warning (Small prob., not that bad): &lt;br /&gt;
*** Ex: OKWARNING: Error Message &lt;br /&gt;
&lt;br /&gt;
* Severe Warning (No &#039;OK&#039; message sent) &lt;br /&gt;
** Ex: WARNING: Error Message&lt;br /&gt;
&lt;br /&gt;
* URL Output: &lt;br /&gt;
** Ex: [http://somefreakinrandomcache.com/cache/gcache.php http://somefreakinrandomcache.com/cache/gcache.php] &lt;br /&gt;
*** OR - WITH A PORT NUMBER (If not 80) &lt;br /&gt;
**** Ex: [http://somefreakinrandomcache.com:8080/cache/gcache.php http://somefreakinrandomcache.com:8080/cache/gcache.php] &lt;br /&gt;
* Host Output: &lt;br /&gt;
** Ex: 66.132.55.12:6346 &lt;br /&gt;
* Pong (ping variable response) - was explained below under the topic: variables. &lt;br /&gt;
* &#039;&#039;&#039;Example Cache Output (Beacon Cache) For urlfile Command&#039;&#039;&#039; &lt;br /&gt;
** Example &amp;quot;urlfile Output&amp;quot; URL: Ex: [http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;urlfile=1 http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;urlfile=1] &lt;br /&gt;
*** Example URL Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Getting urls with a pong combined&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| PONG Beacon Cache 0.1.5D Beta[http://gwc.frodoslair.net/skulls/skulls.php http://gwc.frodoslair.net/skulls/skulls.php][http://bbs.robertwoolley.co.uk/GWebCache/gcache.php http://bbs.robertwoolley.co.uk/GWebCache/gcache.php][http://g2.tjtech.org/g2/ http://g2.tjtech.org/g2/][http://g2.tjtech.org/g2/index.php http://g2.tjtech.org/g2/index.php][http://gwc.monnsta.net/ http://gwc.monnsta.net/][http://holograph.uni.cc/other/skulls.php http://holograph.uni.cc/other/skulls.php][http://gwc.nickstallman.net/ http://gwc.nickstallman.net/][http://gwc.eod.cc/skulls.php http://gwc.eod.cc/skulls.php][http://gwc.frodoslair.net/skulls/skulls http://gwc.frodoslair.net/skulls/skulls][http://gwc.werwin.net/skulls.php http://gwc.werwin.net/skulls.php] &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
* &#039;&#039;&#039;Example Cache Output (Beacon Cache) For hostfile Command&#039;&#039;&#039; &lt;br /&gt;
** Example &amp;quot;hostfile Output&amp;quot; URL: Ex: [http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;hostfile=1 http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;hostfile=1] &lt;br /&gt;
*** Example Host Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Getting the hosts with a pong combined&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| PONG Beacon Cache 0.1.5D Beta71.8.84.153:391599.248.214.157:2752969.60.241.55:16369193.253.239.246:3021868.156.175.121:634871.179.7.241:1834474.196.22.241:634812.210.197.194:10531222.150.143.77:1000058.85.231.135:634624.141.199.164:2020572.175.201.195:634869.81.129.228:488097.81.221.63:1321970.15.130.224:7759216.211.188.106:5190375.167.168.156:4866012.214.14.3:3591676.177.244.106:2418098.165.218.139:3963068.112.182.125:368568.117.204.57:2348265.12.154.25:4076069.180.47.169:571175.138.40.173:2498798.201.19.0:3366270.187.2.144:634868.186.209.107:1442969.159.7.61:634876.208.176.196:48199&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
* &#039;&#039;&#039;For combining a hostfile and urlfile request:&#039;&#039;&#039; &lt;br /&gt;
** Warning: This is non-standard. &lt;br /&gt;
** &#039;&#039;&#039;Example Cache Output (Beacon Cache) For bfile Command&#039;&#039;&#039; &lt;br /&gt;
*** Example &amp;quot;bfile Output&amp;quot; URL: Ex: [http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;bfile=1 http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;bfile=1] &lt;br /&gt;
**** Example Host and URL Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Getting the hosts and urls with a pong combined&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| PONG Beacon Cache 0.1.5D Beta71.8.84.153:391599.248.214.157:2752969.60.241.55:16369193.253.239.246:3021868.156.175.121:634871.179.7.241:1834474.196.22.241:634812.210.197.194:10531222.150.143.77:1000058.85.231.135:634624.141.199.164:2020572.175.201.195:634869.81.129.228:488097.81.221.63:1321970.15.130.224:7759216.211.188.106:5190375.167.168.156:4866012.214.14.3:3591676.177.244.106:2418098.165.218.139:3963068.112.182.125:368568.117.204.57:2348265.12.154.25:4076069.180.47.169:571175.138.40.173:2498798.201.19.0:3366270.187.2.144:634868.186.209.107:1442969.159.7.61:634876.208.176.196:48199[http://gwc.frodoslair.net/skulls/skulls.php http://gwc.frodoslair.net/skulls/skulls.php][http://bbs.robertwoolley.co.uk/GWebCache/gcache.php http://bbs.robertwoolley.co.uk/GWebCache/gcache.php][http://g2.tjtech.org/g2/ http://g2.tjtech.org/g2/][http://g2.tjtech.org/g2/index.php http://g2.tjtech.org/g2/index.php][http://gwc.monnsta.net/ http://gwc.monnsta.net/][http://holograph.uni.cc/other/skulls.php http://holograph.uni.cc/other/skulls.php][http://gwc.nickstallman.net/ http://gwc.nickstallman.net/][http://gwc.eod.cc/skulls.php http://gwc.eod.cc/skulls.php][http://gwc.frodoslair.net/skulls/skulls http://gwc.frodoslair.net/skulls/skulls][http://gwc.werwin.net/skulls.php http://gwc.werwin.net/skulls.php] &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Variables&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Mandatory&#039;&#039;&#039; &lt;br /&gt;
** ping: &lt;br /&gt;
*** Response should have this always: PONG&lt;br /&gt;
*** After, put the cache&#039;s name. ex: PONG fakecache 0.01&lt;br /&gt;
** client: &lt;br /&gt;
*** Four letter code of the client. ex: RAZA &lt;br /&gt;
** version: &lt;br /&gt;
*** Version number of the client. &lt;br /&gt;
** urlfile: &lt;br /&gt;
*** Used by the client to request alternate cache urls. &lt;br /&gt;
** hostfile: &lt;br /&gt;
*** Used by the client to request IPs with port numbers attached. &lt;br /&gt;
** url: &lt;br /&gt;
*** Client update giving an alternate cache URL. &lt;br /&gt;
*** Formatted with a http:// prefix to each cache. &lt;br /&gt;
** ip: &lt;br /&gt;
*** Client update giving one&#039;s IP to submit. &lt;br /&gt;
** url1: &lt;br /&gt;
*** OLD OUTDATED Client update giving an alternate cache URL. &lt;br /&gt;
*** Formatted with a http:// prefix to each cache. &lt;br /&gt;
** ip1: &lt;br /&gt;
*** OLD OUTDATED Client update giving one&#039;s IP to submit. &lt;br /&gt;
* &#039;&#039;&#039;Optional&#039;&#039;&#039; &lt;br /&gt;
** bfile: &lt;br /&gt;
*** For clients to request both URLs and IPs from the cache at the same time. &lt;br /&gt;
** statfile: &lt;br /&gt;
*** Statistics of the cache request: &lt;br /&gt;
**** First line: Total requests of the cache number. &lt;br /&gt;
**** Second line: Requests of the cache an hour number. &lt;br /&gt;
**** Third line: Updates of the cache an hour number.&lt;br /&gt;
&lt;br /&gt;
==== Specification 2: ====&lt;br /&gt;
&#039;&#039;&#039;Networks Served&#039;&#039;&#039; &lt;br /&gt;
* Gnutella, Gnutella2, etc. &lt;br /&gt;
&#039;&#039;&#039;Format&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Information Output&#039;&#039;&#039; &lt;br /&gt;
** Starts with: I| &lt;br /&gt;
*** &#039;&#039;&#039;Categories&#039;&#039;&#039; &lt;br /&gt;
**** &#039;&#039;&#039;Pong&#039;&#039;&#039; (ping variable response) - Described below under the topic: variables. &lt;br /&gt;
**** &#039;&#039;&#039;Update Status Response&#039;&#039;&#039; &lt;br /&gt;
***** Format: I|update &lt;br /&gt;
***** &#039;&#039;&#039;Responses&#039;&#039;&#039; &lt;br /&gt;
****** I|update|OK &lt;br /&gt;
******* - Everything went fine. &lt;br /&gt;
****** I|update|OK|WARNING &lt;br /&gt;
******* Small warning. &lt;br /&gt;
****** I|update|WARNING &lt;br /&gt;
******* Severe warning &lt;br /&gt;
**** &#039;&#039;&#039;Plain Warnings&#039;&#039;&#039; &lt;br /&gt;
***** Format: I|WARNING &lt;br /&gt;
****** Append any warning messages after it - Ex: I|WARNING|You came back too early &lt;br /&gt;
**** &#039;&#039;&#039;Extra Info&#039;&#039;&#039; - Described below under the topic: variables. &lt;br /&gt;
* &#039;&#039;&#039;Host Output&#039;&#039;&#039; &lt;br /&gt;
** Starts with: H| &lt;br /&gt;
** Add the IP with its port: &lt;br /&gt;
*** Ex: H|0.0.0.0:6346 &lt;br /&gt;
** Add the time, thereafter, of the host&#039;s (In seconds*) time in cache: &lt;br /&gt;
*** Ex: H|0.0.0.0:6346|45 &lt;br /&gt;
** If cluster exists with cluster=somerandomwords &lt;br /&gt;
*** Add the clustered words after the host&#039;s age: &lt;br /&gt;
**** Ex: H|0.0.0.0:6346|45|somerandomwords &lt;br /&gt;
* &#039;&#039;&#039;URL Output&#039;&#039;&#039; &lt;br /&gt;
** Starts with: U| &lt;br /&gt;
** Add the URL with http:// before it, plus the port (if it&#039;s not 80). &lt;br /&gt;
*** Ex: U|[http://somerandomcache.com/ http://somerandomcache.com/] &lt;br /&gt;
** Add the time, thereafter, of the URL&#039;s time (In seconds*) in cache: &lt;br /&gt;
*** Ex: U|[http://somerandomcache.com/%7C45 http://somerandomcache.com/|45] &lt;br /&gt;
* &#039;&#039;&#039;Example Cache Output (Beacon Cache) For get Command&#039;&#039;&#039; &lt;br /&gt;
** Example URL: [http://grantgalitz.com/Beacon/gwc.php?get=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;net=gnutella2&amp;amp;ping=1 http://grantgalitz.com/Beacon/gwc.php?get=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;net=gnutella2&amp;amp;ping=1] &lt;br /&gt;
*** Example &amp;quot;Get&amp;quot; Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Getting the hosts and urls with a pong combined&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| I|pong|Beacon Cache 0.1.5D Beta|gnutella-gnutella2H|65.9.200.243:4968|248261H|68.228.129.75:44599|242678H|98.240.196.122:8206|240719H|76.104.12.133:14921|218273H|69.136.1.12:3924|211610H|81.154.208.71:8595|174402H|97.96.105.51:2076|153610H|74.192.153.212:39340|144203H|72.190.106.57:12584|132984H|78.93.71.132:12334|125668H|82.43.248.184:27560|97974H|196.205.224.97:6357|86763H|74.129.219.30:33172|82005H|76.104.12.133:19185|57182H|69.59.83.131:18442|38628U|[http://www.k33bz.com/g2/bazooka.php%7C248639 http://www.k33bz.com/g2/bazooka.php|248639]U|[http://gwebcache.ns1.net/%7C248592 http://gwebcache.ns1.net/|248592]U|[http://gwc2.wodi.org/skulls.php%7C248384 http://gwc2.wodi.org/skulls.php|248384]U|[http://gwc.guufshop.com/skulls/skulls.php%7C248322 http://gwc.guufshop.com/skulls/skulls.php|248322]U|[http://groovy.syxy.com/up/skulls.php%7C248300 http://groovy.syxy.com/up/skulls.php|248300]U|[http://g2.tjtech.org/g2/index.php%7C247770 http://g2.tjtech.org/g2/index.php|247770]U|[http://midian.jayl.de/g2/bazooka.php%7C240719 http://midian.jayl.de/g2/bazooka.php|240719]U|[http://www.dom2porno.info/skulls/skulls.php%7C207473 http://www.dom2porno.info/skulls/skulls.php|207473]U|[http://gwc.frodoslair.net/skulls/skulls%7C125668 http://gwc.frodoslair.net/skulls/skulls|125668]U|[http://holograph.uni.cc/other/skulls.php%7C9642 http://holograph.uni.cc/other/skulls.php|9642] &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Variables&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Mandatory&#039;&#039;&#039; &lt;br /&gt;
** ping: &lt;br /&gt;
*** Main Part: I|pong| &lt;br /&gt;
*** Then add the cache name and version: I|pong|fakecache 0.01 &lt;br /&gt;
*** Then lastly add the network support: &lt;br /&gt;
**** I|pong|fakecache 0.01|gnutella &lt;br /&gt;
***** - Gnutella only &lt;br /&gt;
**** I|pong|fakecache 0.01|gnutella2 &lt;br /&gt;
***** - Gnutella2 only &lt;br /&gt;
**** I|pong|fakecache 0.01|gnutella-gnutella2 &lt;br /&gt;
***** - Gnutella and Gnutella2 served &lt;br /&gt;
** get: &lt;br /&gt;
*** Used by clients to requests alternate cache URLs along with IPs and their port numbers. &lt;br /&gt;
** update: &lt;br /&gt;
*** url: &lt;br /&gt;
**** Client update giving an alternate cache URL. &lt;br /&gt;
**** Formatted with a http:// prefix to each cache. &lt;br /&gt;
*** ip: &lt;br /&gt;
**** Client update giving one&#039;s IP to submit. &lt;br /&gt;
** net: &lt;br /&gt;
*** Which network to serve the client. &lt;br /&gt;
**** Gnutella &lt;br /&gt;
***** Ex: net=gnutella &lt;br /&gt;
**** Gnutella2 &lt;br /&gt;
***** Ex: net=gnutella2 &lt;br /&gt;
**** &#039;&#039;&#039;Should always be lowercase&#039;&#039;&#039; &lt;br /&gt;
***** GWCs should automatically convert network name given to lowercase to prevent Net ID mismatches &lt;br /&gt;
&lt;br /&gt;
solely on case alone. &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
* &lt;br /&gt;
** client: &lt;br /&gt;
*** Four letter code of the client. ex: RAZA &lt;br /&gt;
** version: &lt;br /&gt;
*** Version number of the client. &lt;br /&gt;
* &#039;&#039;&#039;Optional&#039;&#039;&#039; &lt;br /&gt;
** cluster: &lt;br /&gt;
*** To add extra info to an IP update. &lt;br /&gt;
**** Output by cache: H|0.0.0.0|AGE OF HOST (Seconds)|clustering some bull**** &lt;br /&gt;
** statfile: &lt;br /&gt;
*** Exactly like the specification 1 statfile &#039;&#039;&#039;(Same routine and output style)&#039;&#039;&#039;. &lt;br /&gt;
*** Statistics of the cache request: &lt;br /&gt;
**** First line: Total requests of the cache number. &lt;br /&gt;
**** Second line: Requests of the cache an hour number. &lt;br /&gt;
**** Third line: Updates of the cache an hour number. &lt;br /&gt;
&lt;br /&gt;
==== Specification 2.1 ====&lt;br /&gt;
&#039;&#039;&#039;This is an extension of specification 2, not a separate specification!&#039;&#039;&#039; &lt;br /&gt;
Pong extension &lt;br /&gt;
* Append the networks supported joined by a hyphen &#039;-&#039;. &lt;br /&gt;
* Used for client-side validation of networks supported and for network support reporting to other web caches. &lt;br /&gt;
* Format: &lt;br /&gt;
** I|pong|cache name|network names joined by &#039;-&#039; &lt;br /&gt;
** Format Examples: &lt;br /&gt;
*** I|pong|fakecache 0.01|gnutella &lt;br /&gt;
**** - Gnutella only &lt;br /&gt;
*** I|pong|fakecache 0.01|gnutella2 &lt;br /&gt;
**** - Gnutella2 only &lt;br /&gt;
*** I|pong|fakecache 0.01|gnutella-gnutella2 &lt;br /&gt;
**** - Gnutella and Gnutella2 served &lt;br /&gt;
Host Output &lt;br /&gt;
* Just like specification 2, but with more fields supported for host output. &lt;br /&gt;
** H|ip:port|age in cache|clustering|leaves|4 letter vendor code|reported uptime of host|max. leaves possible &lt;br /&gt;
*** The host, age, and clustering fields are all still the same as in specification 2. &lt;br /&gt;
*** The leaf count of the hub reported is in the 5th field. &lt;br /&gt;
*** The vendor code with version number is in the 6th field. &lt;br /&gt;
Request Control Variables: &lt;br /&gt;
* getleaves &lt;br /&gt;
** Used to obtain leaf counts of hubs given &lt;br /&gt;
** 4th field ultilized for current leaf count. &lt;br /&gt;
** 7th field ultilized for maximum leaf slots possible. &lt;br /&gt;
** Use this as &#039;getleaves=1&#039; or &#039;getleaves&#039; to enable. &lt;br /&gt;
* getclusters &lt;br /&gt;
** Enables/Disables clustering. &lt;br /&gt;
** Use this as &#039;getclusters=1&#039;. &lt;br /&gt;
** Using &#039;getclusters&#039; or &#039;getclusters=0&#039; disables cluster output. &lt;br /&gt;
* getvendors &lt;br /&gt;
** Used to obtain the vendor code w/ version number of the hubs given. &lt;br /&gt;
** Found in the 5th field. &lt;br /&gt;
** Use this as &#039;getvendors=1&#039; or &#039;getvendors&#039; to enable. &lt;br /&gt;
* getuptime &lt;br /&gt;
** Used to obtain the vendor code w/ version number of the hubs given. &lt;br /&gt;
** Value is static, do not change the value given when time passes. &lt;br /&gt;
** Found in the 6th field. &lt;br /&gt;
** Use this as &#039;getuptime=1&#039; or &#039;getuptime&#039; to enable. &lt;br /&gt;
* spec &lt;br /&gt;
** To force the specification parameter &lt;br /&gt;
** Currently is only supported by Beacon Cache II &lt;br /&gt;
* pv &lt;br /&gt;
** Similar to the &#039;spec&#039; parameter, except that it does not force, instead it simply negotiates the specification. &lt;br /&gt;
Special Data Requests &lt;br /&gt;
* info &lt;br /&gt;
** Outputs extra details of your cache. &lt;br /&gt;
*** Start with the informational response: I| &lt;br /&gt;
**** Ex: I|open-source|1 &lt;br /&gt;
* support &lt;br /&gt;
** Outputs USEFUL details of your cache. &lt;br /&gt;
*** Start with the informational response: I| &lt;br /&gt;
**** Ex: I|support|gnutella2 &lt;br /&gt;
* getnetworks &lt;br /&gt;
** Outputs the enabled networks in two formats. &lt;br /&gt;
*** Start with the informational response: I| &lt;br /&gt;
**** For the &#039;I|nets|&#039; line &lt;br /&gt;
***** The third field contains the supported networks joined by &#039;-&#039;. &lt;br /&gt;
**** For the &#039;I|networks|&#039; line &lt;br /&gt;
***** Interpret the fields from 3 and beyond as individual network names to challenge against. &lt;br /&gt;
*** Examples &lt;br /&gt;
**** &lt;br /&gt;
***** I|nets|gnutella-gnutella2 &lt;br /&gt;
***** I|networks|gnutella|gnutella2 &lt;br /&gt;
Update Extension Variables: &lt;br /&gt;
* x_leaves &lt;br /&gt;
** Number of leaves running on a given hub or ultrapeer. &lt;br /&gt;
** &#039;&#039;&#039;Value must not be greater than an integer value of 2047.&#039;&#039;&#039; &lt;br /&gt;
** &#039;&#039;&#039;Note: It is important to know that PHP automaticaly replace dots with underscores, so to keep compatibility with old/new version of clients all caches should support both variants, example: x.leaves x_leaves&#039;&#039;&#039; &lt;br /&gt;
* x_max &lt;br /&gt;
** Maximum number of leaves possible on a given hub or ultrapeer. &lt;br /&gt;
** &#039;&#039;&#039;Value must not be greater than an integer value of 2047.&#039;&#039;&#039; &lt;br /&gt;
* uptime &lt;br /&gt;
** Value submitted must be an integer value of the number of seconds of uptime. &lt;br /&gt;
** &#039;&#039;&#039;Value must not be greater than an integer value of 1 year (31536000) and less than 1 hour (60).&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== Pinging Caches With Your Cache ===&lt;br /&gt;
&#039;&#039;&#039;Please follow this standard:&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Client: TEST&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Version: Your Cache&#039;s Name&#039;&#039;&#039; &lt;br /&gt;
** The old value for &amp;quot;version&amp;quot; was 1 &lt;br /&gt;
&#039;&#039;&#039;Some variables to attach to the ping (compatibility):&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;multi&#039;&#039;&#039; &lt;br /&gt;
** Used by some gwcs in their pings to other gwcs. &lt;br /&gt;
** &amp;lt;nowiki&amp;gt;It tells the pinged cache to ignore the &amp;quot;net&amp;quot; parameter (so it should never say network not supported) and outputting the pong using this format, if possible, &amp;quot;I|pong|[cache name] [cache version]|[supported networks list]&amp;quot; - example: I|pong|Skulls 0.2.9|gnutella-gnutella2 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
** Used by Skulls GWC only, supported by Skulls and Beacon Cache II. &lt;br /&gt;
* &#039;&#039;&#039;cache&#039;&#039;&#039; &lt;br /&gt;
** This is added to every request made by some gwcs, it is for statistical purposes only. &lt;br /&gt;
** It simply tells the remote cache that the client is a GWC. &lt;br /&gt;
&#039;&#039;&#039;Help&#039;&#039;&#039; &lt;br /&gt;
* For PHP &lt;br /&gt;
** Use the fsockopen() function to open a connection to a cache. &lt;br /&gt;
*** Make sure you &amp;quot;write&amp;quot; to the fsockopen carry value to open the GWC&#039;s target file. &lt;br /&gt;
**** [http://us.php.net/manual/en/function.fsockopen.php http://us.php.net/manual/en/function.fsockopen.php] &lt;br /&gt;
&lt;br /&gt;
=== Variable Combination Standards ===&lt;br /&gt;
&#039;&#039;&#039;Net variable decides specification!&#039;&#039;&#039; &lt;br /&gt;
* There are many ways to determine spec., but going with net is the safe way. &lt;br /&gt;
* Skulls GWC does not use the network parameter to determine specification level. &lt;br /&gt;
* Beacon Cache (I and II) uses the network parameter to determine the specification level. &lt;br /&gt;
&#039;&#039;&#039;Your cache needs to be able to process certain combinations of variables.&#039;&#039;&#039; &lt;br /&gt;
* Update variable &lt;br /&gt;
** Update should not fail if absent if spec. 2. &lt;br /&gt;
*** A Specification 2 parameter. &lt;br /&gt;
Spec 1 parameters used in Spec 2: &lt;br /&gt;
* Should still accept hostfile and urlfile responses for spec. 2. &lt;br /&gt;
** Beacon Cache (I and II) accepts these parameters on spec 2. &lt;br /&gt;
The &#039;spec&#039; paameter can be used to force a specification: &lt;br /&gt;
* Only known to exist in Beacon Cache II, it can force the request to be handled as a specification 1 or 2 request. &lt;br /&gt;
* Spec 1 = &#039;spec=1&#039; &lt;br /&gt;
* Spec 2 = &#039;spec=2&#039; &lt;br /&gt;
* If &#039;spec&#039; is not equal to any current spec, then default to the predetermined spec. &lt;br /&gt;
&#039;&#039;&#039;Multiple variable requests&#039;&#039;&#039; &lt;br /&gt;
* If for instance a ping and request exist, you should always handle them properly. &lt;br /&gt;
** Same goes with other combos like an update and ping, statfile + ping and info. &lt;br /&gt;
* Handle multiple variables as BEST as possible! &lt;br /&gt;
** Some scanners and GWCs like to fit all their requests into one URL send. &lt;br /&gt;
&lt;br /&gt;
=== Further Information: ===&lt;br /&gt;
* [http://www.gnucleus.com/gwebcache/ Original GWC] [http://www.gnucleus.com/gwebcache/ site] &lt;br /&gt;
** [http://gnucleus.sourceforge.net/gwebcache/specs.html GWC Spec. 1] &lt;br /&gt;
** [http://gnucleus.sourceforge.net/gwebcache/newgwc.html GWC Spec. 2] &lt;br /&gt;
&lt;br /&gt;
=== Gnutella Web Cache ===&lt;br /&gt;
Gnutella requires Gnutella Web Caches (GWC) to get IPs to establish a connection to the network.  These are critical to ensuring the health of the network.  If you have a dedicated server and can spare some extra bandwidth then please consider running a GWC.  People that don&#039;t have a dedicated server or are on normal broadband consumer lines should not run a cache from home.&lt;br /&gt;
&lt;br /&gt;
A GWC is a simple script that can be put on any webserver that supports one of the following scripting languages:&lt;br /&gt;
*JSP (Java Servlet)&lt;br /&gt;
**[http://web.archive.org/web/20061108091447/http://www.mager.org/GWebCache/ Java Servlet GWebCache Application (Archive.org)]&lt;br /&gt;
*C&lt;br /&gt;
**[http://github.com/gtk-gnutella/gwc GhostWhiteCrab]&lt;br /&gt;
*Perl &lt;br /&gt;
**[http://www.jonatkins.com/perlgcache/ Jon Atkins&#039; perlgcache] &lt;br /&gt;
**The original [http://www.gnucleus.com/gwebcache/dist/ GnuWebCache]&lt;br /&gt;
*PHP &lt;br /&gt;
**[http://gwcii.sourceforge.net/ PHPGnuCacheII] - MySQL&lt;br /&gt;
**[http://www.bazookanetworks.com Bazooka G2WC] (recommended) - flat files&lt;br /&gt;
**[http://sourceforge.net/projects/skulls/ Skulls! Multi-Network WebCache] - flat files&lt;br /&gt;
====Further Information:====&lt;br /&gt;
*[http://www.gnucleus.com/gwebcache/|Original GWC site]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{RecoveredPage|--&amp;gt;Saved in timestamp 20090421202728Retrieved from &amp;quot;[https://www.pantheraproject.net/wiki/index.php?title=GWC This page was last modified on April 18, 2009, at 23:25. &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;Copyright © 2002-2009 Shareaza Development Team. &amp;lt;/center&amp;gt;&amp;lt;center&amp;gt;[[Image:poweredby_mediawiki_88x31.png]] --[[User:Ocexyz|Ocexyz]] 16:20, 27 July 2009 (UTC)}}&lt;br /&gt;
&lt;br /&gt;
{{RecoveredPage|Warninig: here ends pasted better formatted recovery. Row recovery has been mooved below as I don&#039;t know if anybody has made any changes in it. If not then row recovery can be deleted I suppose. Paste starts from == Shareaza Specific Details == and ends at second == Shareaza Specific Details ==, here. I hope it is visible.  --[[User:Ocexyz|Ocexyz]] 16:20, 27 July 2009 (UTC)  }}&lt;br /&gt;
&lt;br /&gt;
==Shareaza Specific Details==&lt;br /&gt;
&lt;br /&gt;
{{RecoveredPage|Warninig: here ends pasted better formatted recovery. Row recovery has been mooved below as I don&#039;t know if anybody has made any changes in it. If not then row recovery can be deleted I suppose. Paste starts from &amp;gt;&amp;gt;Shareaza Specific Details&amp;lt;&amp;lt; and ends at second &amp;gt;&amp;gt; Shareaza Specific Details&amp;lt;&amp;lt;, here. I hope it is visible.  --[[User:Ocexyz|Ocexyz]] 23:27, 27 July 2009 (UTC)  }}&lt;br /&gt;
&lt;br /&gt;
* Get String Breakdown:&lt;br /&gt;
          o Update a leaf&lt;br /&gt;
                + &amp;quot;?update=1&amp;amp;ip=(ip):(port)&amp;amp;x_leaves=(leaf count) &lt;br /&gt;
          o Ping Variable&lt;br /&gt;
                + Appends &amp;amp;ping=1 to identify the cache name in debug messages (for gnutella and gnutella2 in 2.4.0.0, but only for gnutella2 now in 2.4.0.X for spec1 cache compatibility).&lt;br /&gt;
                + This feature new to Shareaza. &lt;br /&gt;
          o Network Variable&lt;br /&gt;
                + Appends &amp;amp;net=gnutella2 on Gnutella2 queries.&lt;br /&gt;
                + Does NOT append a network variable on Gnutella(1) queries. &lt;br /&gt;
          o Client Name / Version Format (2.4.0.0 and earlier):&lt;br /&gt;
                + &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) )&lt;br /&gt;
                + &amp;amp;version=(Shareaza&#039;s version) &lt;br /&gt;
          o Client Name / Version Format (2.4.0.X):&lt;br /&gt;
                + If Gnutella&lt;br /&gt;
                      # &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) )&lt;br /&gt;
                      # &amp;amp;version=(Shareaza&#039;s version) &lt;br /&gt;
                + If Gnutella2&lt;br /&gt;
                      # &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) )+(Shareaza&#039;s version) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* GWC Response Matching:&lt;br /&gt;
          o i|&lt;br /&gt;
                + Informational output alone will not be taken as GWC &#039;success.&#039; &lt;br /&gt;
          o i|access|period|(time in sec.)&lt;br /&gt;
                + Time in seconds before Shareaza is allowed to make a request to the cache. &lt;br /&gt;
          o i|update|period|(time in sec.)&lt;br /&gt;
                + Time in seconds before Shareaza is allowed to update to the cache. &lt;br /&gt;
          o i|force|remove and i|update|warning|bad url&lt;br /&gt;
                + Remove the GWC from the internal list. &lt;br /&gt;
          o Some Response Matches (added in 2.3.1.X)&lt;br /&gt;
                + i|NO-URL-NO-HOSTS&lt;br /&gt;
                      # Outputs warning of the cache being totally empty to the system log. &lt;br /&gt;
                + i|NO-URL&lt;br /&gt;
                      # Outputs warning of the cache having no alternative URLs to the system log. &lt;br /&gt;
                + i|NO-HOSTS&lt;br /&gt;
                      # Outputs warning of the cache having no hosts to the system log. &lt;br /&gt;
                + i|warning|&lt;br /&gt;
                      # Outputs warning of the cache to the system log. &lt;br /&gt;
                + ERROR Something Failed&lt;br /&gt;
                      # Outputs warning of the cache to the system log(Buggy Bazooka GWCs workaround). &lt;br /&gt;
                + i|warning|You came back too early (2.3.1.X)&lt;br /&gt;
                + i|warning|client|early (2.3.1.X)&lt;br /&gt;
                + WARNING: You came back too early (2.3.1.X)&lt;br /&gt;
                + ERROR: Client returned too early (2.3.1.X)&lt;br /&gt;
                      # Flood detection for the update side.&lt;br /&gt;
                      # Outputs GWebCache(update) Too many connection attempts to the system log. &lt;br /&gt;
                + too early (2.3.1.X)&lt;br /&gt;
                + early (2.4.0.X)&lt;br /&gt;
                      # Flood detection for the request side.&lt;br /&gt;
                      # Outputs GWebCache URL: Too many connection attempts to the system log. &lt;br /&gt;
                + i|update|OK&lt;br /&gt;
                      # Outputs &amp;quot;GWebCache(v2) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
                + OK&lt;br /&gt;
                      # Outputs &amp;quot;GWebCache(v1) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* GWC Response Matching:&lt;br /&gt;
          o i|&lt;br /&gt;
                + Informational output alone will not be taken as GWC &#039;success.&#039; &lt;br /&gt;
          o i|access|period|(time in sec.)&lt;br /&gt;
                + Time in seconds before Shareaza is allowed to make a request to the cache. &lt;br /&gt;
          o i|update|period|(time in sec.)&lt;br /&gt;
                + Time in seconds before Shareaza is allowed to update to the cache. &lt;br /&gt;
          o i|force|remove and i|update|warning|bad url&lt;br /&gt;
                + Remove the GWC from the internal list. &lt;br /&gt;
          o Some Response Matches (added in 2.3.1.X)&lt;br /&gt;
                + i|NO-URL-NO-HOSTS&lt;br /&gt;
                      # Outputs warning of the cache being totally empty to the system log. &lt;br /&gt;
                + i|NO-URL&lt;br /&gt;
                      # Outputs warning of the cache having no alternative URLs to the system log. &lt;br /&gt;
                + i|NO-HOSTS&lt;br /&gt;
                      # Outputs warning of the cache having no hosts to the system log. &lt;br /&gt;
                + i|warning|&lt;br /&gt;
                      # Outputs warning of the cache to the system log. &lt;br /&gt;
                + ERROR Something Failed&lt;br /&gt;
                      # Outputs warning of the cache to the system log(Buggy Bazooka GWCs workaround). &lt;br /&gt;
                + i|warning|You came back too early (2.3.1.X)&lt;br /&gt;
                + i|warning|client|early (2.3.1.X)&lt;br /&gt;
                + WARNING: You came back too early (2.3.1.X)&lt;br /&gt;
                + ERROR: Client returned too early (2.3.1.X)&lt;br /&gt;
                      # Flood detection for the update side.&lt;br /&gt;
                      # Outputs GWebCache(update) Too many connection attempts to the system log. &lt;br /&gt;
                + too early (2.3.1.X)&lt;br /&gt;
                + early (2.4.0.X)&lt;br /&gt;
                      # Flood detection for the request side.&lt;br /&gt;
                      # Outputs GWebCache URL: Too many connection attempts to the system log. &lt;br /&gt;
                + i|update|OK&lt;br /&gt;
                      # Outputs &amp;quot;GWebCache(v2) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
                + OK&lt;br /&gt;
                      # Outputs &amp;quot;GWebCache(v1) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Gnutella Web Cache Specifications==&lt;br /&gt;
&amp;lt;end of partial recovery by OCE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;end of recovered content&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;row recovery, start&amp;gt; &lt;br /&gt;
 Specification 1:&lt;br /&gt;
&lt;br /&gt;
    * Networks Served&lt;br /&gt;
          o Gnutella &lt;br /&gt;
    * Format&lt;br /&gt;
          o Update went fine:&lt;br /&gt;
                + Ex: OK &lt;br /&gt;
          o Update Warning (Small prob., not that bad):&lt;br /&gt;
                + Ex: &lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
WARNING: Error Message&lt;br /&gt;
&lt;br /&gt;
    * Severe Warning (No &#039;OK&#039; message sent)&lt;br /&gt;
          o Ex: &lt;br /&gt;
&lt;br /&gt;
WARNING: Error Message&lt;br /&gt;
&lt;br /&gt;
    * URL Output:&lt;br /&gt;
          o Ex: http://somefreakinrandomcache.com/cache/gcache.php&lt;br /&gt;
                + OR - WITH A PORT NUMBER (If not 80)&lt;br /&gt;
                      # Ex: http://somefreakinrandomcache.com:8080/cache/gcache.php &lt;br /&gt;
    * Host Output:&lt;br /&gt;
          o Ex: 66.132.55.12:6346 &lt;br /&gt;
    * Pong (ping variable response) - was explained below under the topic: variables.&lt;br /&gt;
    * Example Cache Output (Beacon Cache) For urlfile Command&lt;br /&gt;
          o Example &amp;quot;urlfile Output&amp;quot; URL: Ex: http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;urlfile=1&lt;br /&gt;
                + Example URL Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting urls with a pong combined&lt;br /&gt;
&lt;br /&gt;
PONG Beacon Cache 0.1.5D Beta&lt;br /&gt;
http://gwc.frodoslair.net/skulls/skulls.php&lt;br /&gt;
http://bbs.robertwoolley.co.uk/GWebCache/gcache.php&lt;br /&gt;
http://g2.tjtech.org/g2/&lt;br /&gt;
http://g2.tjtech.org/g2/index.php&lt;br /&gt;
http://gwc.monnsta.net/&lt;br /&gt;
http://holograph.uni.cc/other/skulls.php&lt;br /&gt;
http://gwc.nickstallman.net/&lt;br /&gt;
http://gwc.eod.cc/skulls.php&lt;br /&gt;
http://gwc.frodoslair.net/skulls/skulls&lt;br /&gt;
http://gwc.werwin.net/skulls.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * Example Cache Output (Beacon Cache) For hostfile Command&lt;br /&gt;
          o Example &amp;quot;hostfile Output&amp;quot; URL: Ex: http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;hostfile=1&lt;br /&gt;
                + Example Host Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting the hosts with a pong combined&lt;br /&gt;
&lt;br /&gt;
PONG Beacon Cache 0.1.5D Beta&lt;br /&gt;
71.8.84.153:3915&lt;br /&gt;
99.248.214.157:27529&lt;br /&gt;
69.60.241.55:16369&lt;br /&gt;
193.253.239.246:30218&lt;br /&gt;
68.156.175.121:6348&lt;br /&gt;
71.179.7.241:18344&lt;br /&gt;
74.196.22.241:6348&lt;br /&gt;
12.210.197.194:10531&lt;br /&gt;
222.150.143.77:10000&lt;br /&gt;
58.85.231.135:6346&lt;br /&gt;
24.141.199.164:20205&lt;br /&gt;
72.175.201.195:6348&lt;br /&gt;
69.81.129.228:4880&lt;br /&gt;
97.81.221.63:13219&lt;br /&gt;
70.15.130.224:7759&lt;br /&gt;
216.211.188.106:51903&lt;br /&gt;
75.167.168.156:48660&lt;br /&gt;
12.214.14.3:35916&lt;br /&gt;
76.177.244.106:24180&lt;br /&gt;
98.165.218.139:39630&lt;br /&gt;
68.112.182.125:3685&lt;br /&gt;
68.117.204.57:23482&lt;br /&gt;
65.12.154.25:40760&lt;br /&gt;
69.180.47.169:5711&lt;br /&gt;
75.138.40.173:24987&lt;br /&gt;
98.201.19.0:33662&lt;br /&gt;
70.187.2.144:6348&lt;br /&gt;
68.186.209.107:14429&lt;br /&gt;
69.159.7.61:6348&lt;br /&gt;
76.208.176.196:48199&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * For combining a hostfile and urlfile request:&lt;br /&gt;
          o Warning: This is non-standard.&lt;br /&gt;
          o Example Cache Output (Beacon Cache) For bfile Command&lt;br /&gt;
                + Example &amp;quot;bfile Output&amp;quot; URL: Ex: http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;bfile=1&lt;br /&gt;
                      # Example Host and URL Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting the hosts and urls with a pong combined&lt;br /&gt;
&lt;br /&gt;
PONG Beacon Cache 0.1.5D Beta&lt;br /&gt;
71.8.84.153:3915&lt;br /&gt;
99.248.214.157:27529&lt;br /&gt;
69.60.241.55:16369&lt;br /&gt;
193.253.239.246:30218&lt;br /&gt;
68.156.175.121:6348&lt;br /&gt;
71.179.7.241:18344&lt;br /&gt;
74.196.22.241:6348&lt;br /&gt;
12.210.197.194:10531&lt;br /&gt;
222.150.143.77:10000&lt;br /&gt;
58.85.231.135:6346&lt;br /&gt;
24.141.199.164:20205&lt;br /&gt;
72.175.201.195:6348&lt;br /&gt;
69.81.129.228:4880&lt;br /&gt;
97.81.221.63:13219&lt;br /&gt;
70.15.130.224:7759&lt;br /&gt;
216.211.188.106:51903&lt;br /&gt;
75.167.168.156:48660&lt;br /&gt;
12.214.14.3:35916&lt;br /&gt;
76.177.244.106:24180&lt;br /&gt;
98.165.218.139:39630&lt;br /&gt;
68.112.182.125:3685&lt;br /&gt;
68.117.204.57:23482&lt;br /&gt;
65.12.154.25:40760&lt;br /&gt;
69.180.47.169:5711&lt;br /&gt;
75.138.40.173:24987&lt;br /&gt;
98.201.19.0:33662&lt;br /&gt;
70.187.2.144:6348&lt;br /&gt;
68.186.209.107:14429&lt;br /&gt;
69.159.7.61:6348&lt;br /&gt;
76.208.176.196:48199&lt;br /&gt;
http://gwc.frodoslair.net/skulls/skulls.php&lt;br /&gt;
http://bbs.robertwoolley.co.uk/GWebCache/gcache.php&lt;br /&gt;
http://g2.tjtech.org/g2/&lt;br /&gt;
http://g2.tjtech.org/g2/index.php&lt;br /&gt;
http://gwc.monnsta.net/&lt;br /&gt;
http://holograph.uni.cc/other/skulls.php&lt;br /&gt;
http://gwc.nickstallman.net/&lt;br /&gt;
http://gwc.eod.cc/skulls.php&lt;br /&gt;
http://gwc.frodoslair.net/skulls/skulls&lt;br /&gt;
http://gwc.werwin.net/skulls.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * Variables&lt;br /&gt;
          o Mandatory&lt;br /&gt;
                + ping:&lt;br /&gt;
                      # Response should have this always: PONG&lt;br /&gt;
                      # After, put the cache&#039;s name. ex: PONG fakecache 0.01&lt;br /&gt;
                + client:&lt;br /&gt;
                      # Four letter code of the client. ex: RAZA &lt;br /&gt;
                + version:&lt;br /&gt;
                      # Version number of the client. &lt;br /&gt;
                + urlfile:&lt;br /&gt;
                      # Used by the client to request alternate cache urls. &lt;br /&gt;
                + hostfile:&lt;br /&gt;
                      # Used by the client to request IPs with port numbers attached. &lt;br /&gt;
                + url:&lt;br /&gt;
                      # Client update giving an alternate cache URL.&lt;br /&gt;
                      # Formatted with a http:// prefix to each cache. &lt;br /&gt;
                + ip:&lt;br /&gt;
                      # Client update giving one&#039;s IP to submit. &lt;br /&gt;
                + url1:&lt;br /&gt;
                      # OLD OUTDATED Client update giving an alternate cache URL.&lt;br /&gt;
                      # Formatted with a http:// prefix to each cache. &lt;br /&gt;
                + ip1:&lt;br /&gt;
                      # OLD OUTDATED Client update giving one&#039;s IP to submit. &lt;br /&gt;
          o Optional&lt;br /&gt;
                + bfile:&lt;br /&gt;
                      # For clients to request both URLs and IPs from the cache at the same time. &lt;br /&gt;
                + statfile:&lt;br /&gt;
                      # Statistics of the cache request:&lt;br /&gt;
                            * First line: Total requests of the cache number.&lt;br /&gt;
                            * Second line: Requests of the cache an hour number.&lt;br /&gt;
                            * Third line: Updates of the cache an hour number. &lt;br /&gt;
&lt;br /&gt;
Specification 2:&lt;br /&gt;
&lt;br /&gt;
    * Networks Served&lt;br /&gt;
          o Gnutella, Gnutella2, etc. &lt;br /&gt;
    * Format&lt;br /&gt;
          o Information Output&lt;br /&gt;
                + Starts with: I|&lt;br /&gt;
                      # Categories&lt;br /&gt;
                            * Pong (ping variable response) - Described below under the topic: variables.&lt;br /&gt;
                            * Update Status Response&lt;br /&gt;
                                  o Format: I|update&lt;br /&gt;
                                  o Responses&lt;br /&gt;
                                        + I|update|OK&lt;br /&gt;
                                              # - Everything went fine. &lt;br /&gt;
                                        + I|update|OK|WARNING&lt;br /&gt;
                                              # Small warning. &lt;br /&gt;
                                        + I|update|WARNING&lt;br /&gt;
                                              # Severe warning &lt;br /&gt;
                            * Plain Warnings&lt;br /&gt;
                                  o Format: I|WARNING&lt;br /&gt;
                                        + Append any warning messages after it - Ex: I|WARNING|You came back too early &lt;br /&gt;
                            * Extra Info - Described below under the topic: variables. &lt;br /&gt;
          o Host Output&lt;br /&gt;
                + Starts with: H|&lt;br /&gt;
                + Add the IP with its port:&lt;br /&gt;
                      # Ex: H|0.0.0.0:6346 &lt;br /&gt;
                + Add the time, thereafter, of the host&#039;s (In seconds*) time in cache:&lt;br /&gt;
                      # Ex: H|0.0.0.0:6346|45 &lt;br /&gt;
                + If cluster exists with cluster=somerandomwords&lt;br /&gt;
                      # Add the clustered words after the host&#039;s age:&lt;br /&gt;
                            * Ex: H|0.0.0.0:6346|45|somerandomwords &lt;br /&gt;
          o URL Output&lt;br /&gt;
                + Starts with: U|&lt;br /&gt;
                + Add the URL with http:// before it, plus the port (if it&#039;s not 80).&lt;br /&gt;
                      # Ex: U|http://somerandomcache.com/ &lt;br /&gt;
                + Add the time, thereafter, of the URL&#039;s time (In seconds*) in cache:&lt;br /&gt;
                      # Ex: U|http://somerandomcache.com/|45 &lt;br /&gt;
          o Example Cache Output (Beacon Cache) For get Command&lt;br /&gt;
                + Example URL: http://grantgalitz.com/Beacon/gwc.php?get=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;net=gnutella2&amp;amp;ping=1&lt;br /&gt;
                      # Example &amp;quot;Get&amp;quot; Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting the hosts and urls with a pong combined&lt;br /&gt;
&lt;br /&gt;
I|pong|Beacon Cache 0.1.5D Beta|gnutella-gnutella2&lt;br /&gt;
H|65.9.200.243:4968|248261&lt;br /&gt;
H|68.228.129.75:44599|242678&lt;br /&gt;
H|98.240.196.122:8206|240719&lt;br /&gt;
H|76.104.12.133:14921|218273&lt;br /&gt;
H|69.136.1.12:3924|211610&lt;br /&gt;
H|81.154.208.71:8595|174402&lt;br /&gt;
H|97.96.105.51:2076|153610&lt;br /&gt;
H|74.192.153.212:39340|144203&lt;br /&gt;
H|72.190.106.57:12584|132984&lt;br /&gt;
H|78.93.71.132:12334|125668&lt;br /&gt;
H|82.43.248.184:27560|97974&lt;br /&gt;
H|196.205.224.97:6357|86763&lt;br /&gt;
H|74.129.219.30:33172|82005&lt;br /&gt;
H|76.104.12.133:19185|57182&lt;br /&gt;
H|69.59.83.131:18442|38628&lt;br /&gt;
U|http://www.k33bz.com/g2/bazooka.php|248639&lt;br /&gt;
U|http://gwebcache.ns1.net/|248592&lt;br /&gt;
U|http://gwc2.wodi.org/skulls.php|248384&lt;br /&gt;
U|http://gwc.guufshop.com/skulls/skulls.php|248322&lt;br /&gt;
U|http://groovy.syxy.com/up/skulls.php|248300&lt;br /&gt;
U|http://g2.tjtech.org/g2/index.php|247770&lt;br /&gt;
U|http://midian.jayl.de/g2/bazooka.php|240719&lt;br /&gt;
U|http://www.dom2porno.info/skulls/skulls.php|207473&lt;br /&gt;
U|http://gwc.frodoslair.net/skulls/skulls|125668&lt;br /&gt;
U|http://holograph.uni.cc/other/skulls.php|9642&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * Variables&lt;br /&gt;
          o Mandatory&lt;br /&gt;
                + ping:&lt;br /&gt;
                      # Main Part: I|pong|&lt;br /&gt;
                      # Then add the cache name and version: I|pong|fakecache 0.01&lt;br /&gt;
                      # Then lastly add the network support:&lt;br /&gt;
                            * I|pong|fakecache 0.01|gnutella&lt;br /&gt;
                                  o - Gnutella only &lt;br /&gt;
                            * I|pong|fakecache 0.01|gnutella2&lt;br /&gt;
                                  o - Gnutella2 only &lt;br /&gt;
                            * I|pong|fakecache 0.01|gnutella-gnutella2&lt;br /&gt;
                                  o - Gnutella and Gnutella2 served &lt;br /&gt;
                + get:&lt;br /&gt;
                      # Used by clients to requests alternate cache URLs along with IPs and their port numbers. &lt;br /&gt;
                + update:&lt;br /&gt;
                      # url:&lt;br /&gt;
                            * Client update giving an alternate cache URL.&lt;br /&gt;
                            * Formatted with a http:// prefix to each cache. &lt;br /&gt;
                      # ip:&lt;br /&gt;
                            * Client update giving one&#039;s IP to submit. &lt;br /&gt;
                + net:&lt;br /&gt;
                      # Which network to serve the client.&lt;br /&gt;
                            * Gnutella&lt;br /&gt;
                                  o Ex: net=gnutella &lt;br /&gt;
                            * Gnutella2&lt;br /&gt;
                                  o Ex: net=gnutella2 &lt;br /&gt;
                            * Should always be lowercase&lt;br /&gt;
                                  o GWCs should automatically convert network name given to lowercase to prevent Net ID mismatches &lt;br /&gt;
&lt;br /&gt;
solely on case alone.&lt;br /&gt;
&lt;br /&gt;
    *&lt;br /&gt;
          o&lt;br /&gt;
                + client:&lt;br /&gt;
                      # Four letter code of the client. ex: RAZA &lt;br /&gt;
                + version:&lt;br /&gt;
                      # Version number of the client. &lt;br /&gt;
          o Optional&lt;br /&gt;
                + cluster:&lt;br /&gt;
                      # To add extra info to an IP update.&lt;br /&gt;
                            * Output by cache: H|0.0.0.0|AGE OF HOST (Seconds)|clustering some bull**** &lt;br /&gt;
                + statfile:&lt;br /&gt;
                      # Exactly like the specification 1 statfile (Same routine and output style).&lt;br /&gt;
                      # Statistics of the cache request:&lt;br /&gt;
                            * First line: Total requests of the cache number.&lt;br /&gt;
                            * Second line: Requests of the cache an hour number.&lt;br /&gt;
                            * Third line: Updates of the cache an hour number. &lt;br /&gt;
&lt;br /&gt;
Specification 2.1&lt;br /&gt;
&lt;br /&gt;
    * This is an extension of specification 2, not a separate specification!&lt;br /&gt;
    * Pong extension&lt;br /&gt;
          o Append the networks supported joined by a hyphen &#039;-&#039;.&lt;br /&gt;
          o Used for client-side validation of networks supported and for network support reporting to other web caches.&lt;br /&gt;
          o Format:&lt;br /&gt;
                + I|pong|cache name|network names joined by &#039;-&#039;&lt;br /&gt;
                + Format Examples:&lt;br /&gt;
                      # I|pong|fakecache 0.01|gnutella&lt;br /&gt;
                            * - Gnutella only &lt;br /&gt;
                      # I|pong|fakecache 0.01|gnutella2&lt;br /&gt;
                            * - Gnutella2 only &lt;br /&gt;
                      # I|pong|fakecache 0.01|gnutella-gnutella2&lt;br /&gt;
                            * - Gnutella and Gnutella2 served &lt;br /&gt;
    * Host Output&lt;br /&gt;
          o Just like specification 2, but with more fields supported for host output.&lt;br /&gt;
                + H|ip:port|age in cache|clustering|leaves|4 letter vendor code|reported uptime of host|max. leaves possible&lt;br /&gt;
                      # The host, age, and clustering fields are all still the same as in specification 2.&lt;br /&gt;
                      # The leaf count of the hub reported is in the 5th field.&lt;br /&gt;
                      # The vendor code with version number is in the 6th field. &lt;br /&gt;
    * Request Control Variables:&lt;br /&gt;
          o getleaves&lt;br /&gt;
                + Used to obtain leaf counts of hubs given&lt;br /&gt;
                + 4th field ultilized for current leaf count.&lt;br /&gt;
                + 7th field ultilized for maximum leaf slots possible.&lt;br /&gt;
                + Use this as &#039;getleaves=1&#039; or &#039;getleaves&#039; to enable. &lt;br /&gt;
          o getclusters&lt;br /&gt;
                + Enables/Disables clustering.&lt;br /&gt;
                + Use this as &#039;getclusters=1&#039;.&lt;br /&gt;
                + Using &#039;getclusters&#039; or &#039;getclusters=0&#039; disables cluster output. &lt;br /&gt;
          o getvendors&lt;br /&gt;
                + Used to obtain the vendor code w/ version number of the hubs given.&lt;br /&gt;
                + Found in the 5th field.&lt;br /&gt;
                + Use this as &#039;getvendors=1&#039; or &#039;getvendors&#039; to enable. &lt;br /&gt;
          o getuptime&lt;br /&gt;
                + Used to obtain the vendor code w/ version number of the hubs given.&lt;br /&gt;
                + Value is static, do not change the value given when time passes.&lt;br /&gt;
                + Found in the 6th field.&lt;br /&gt;
                + Use this as &#039;getuptime=1&#039; or &#039;getuptime&#039; to enable. &lt;br /&gt;
          o spec&lt;br /&gt;
                + To force the specification parameter&lt;br /&gt;
                + Currently is only supported by Beacon Cache II &lt;br /&gt;
          o pv&lt;br /&gt;
                + Similar to the &#039;spec&#039; parameter, except that it does not force, instead it simply negotiates the specification. &lt;br /&gt;
    * Special Data Requests&lt;br /&gt;
          o info&lt;br /&gt;
                + Outputs extra details of your cache.&lt;br /&gt;
                      # Start with the informational response: I|&lt;br /&gt;
                            * Ex: I|open-source|1 &lt;br /&gt;
          o support&lt;br /&gt;
                + Outputs USEFUL details of your cache.&lt;br /&gt;
                      # Start with the informational response: I|&lt;br /&gt;
                            * Ex: I|support|gnutella2 &lt;br /&gt;
          o getnetworks&lt;br /&gt;
                + Outputs the enabled networks in two formats.&lt;br /&gt;
                      # Start with the informational response: I|&lt;br /&gt;
                            * For the &#039;I|nets|&#039; line&lt;br /&gt;
                                  o The third field contains the supported networks joined by &#039;-&#039;. &lt;br /&gt;
                            * For the &#039;I|networks|&#039; line&lt;br /&gt;
                                  o Interpret the fields from 3 and beyond as individual network names to challenge against. &lt;br /&gt;
                      # Examples&lt;br /&gt;
                            *&lt;br /&gt;
                                  o I|nets|gnutella-gnutella2&lt;br /&gt;
                                  o I|networks|gnutella|gnutella2 &lt;br /&gt;
    * Update Extension Variables:&lt;br /&gt;
          o x_leaves&lt;br /&gt;
                + Number of leaves running on a given hub or ultrapeer.&lt;br /&gt;
                + Value must not be greater than an integer value of 2047.&lt;br /&gt;
                + Note: It is important to know that PHP automaticaly replace dots with underscores, so to keep compatibility with old/new version of clients all caches should support both variants, example: x.leaves x_leaves&lt;br /&gt;
          o x_max&lt;br /&gt;
                + Maximum number of leaves possible on a given hub or ultrapeer.&lt;br /&gt;
                + Value must not be greater than an integer value of 2047. &lt;br /&gt;
          o uptime&lt;br /&gt;
                + Value submitted must be an integer value of the number of seconds of uptime.&lt;br /&gt;
                + Value must not be greater than an integer value of 1 year (31536000) and less than 1 hour (60). &lt;br /&gt;
&lt;br /&gt;
Pinging Caches With Your Cache&lt;br /&gt;
&lt;br /&gt;
    * Please follow this standard:&lt;br /&gt;
          o Client: TEST&lt;br /&gt;
          o Version: Your Cache&#039;s Name&lt;br /&gt;
                + The old value for &amp;quot;version&amp;quot; was 1 &lt;br /&gt;
    * Some variables to attach to the ping (compatibility):&lt;br /&gt;
          o multi&lt;br /&gt;
                + Used by some gwcs in their pings to other gwcs.&lt;br /&gt;
                + It tells the pinged cache to ignore the &amp;quot;net&amp;quot; parameter (so it should never say network not supported) and outputting the pong using this format, if possible, &amp;quot;I|pong|[cache name] [cache version]|[supported networks list]|[url adding is enabled]&amp;quot; - example: I|pong|Skulls 0.2.8a|gnutella-gnutella2|1&lt;br /&gt;
                + Used by Skulls GWC only, supported by Skulls and Beacon Cache II. &lt;br /&gt;
          o cache&lt;br /&gt;
                + This is added to every request made by some gwcs, it is for statistical purposes only.&lt;br /&gt;
                + It simply tells the remote cache that the client is a GWC. &lt;br /&gt;
    * Help&lt;br /&gt;
          o For PHP&lt;br /&gt;
                + Use the fsockopen() function to open a connection to a cache.&lt;br /&gt;
                      # Make sure you &amp;quot;write&amp;quot; to the fsockopen carry value to open the GWC&#039;s target file.&lt;br /&gt;
                            * http://us.php.net/manual/en/function.fsockopen.php &lt;br /&gt;
&lt;br /&gt;
Variable Combination Standards&lt;br /&gt;
&lt;br /&gt;
    * Net variable decides specification!&lt;br /&gt;
          o There are many ways to determine spec., but going with net is the safe way.&lt;br /&gt;
          o Skulls GWC does not use the network parameter to determine specification level.&lt;br /&gt;
          o Beacon Cache (I and II) uses the network parameter to determine the specification level. &lt;br /&gt;
    * Your cache needs to be able to process certain combinations of variables.&lt;br /&gt;
          o Update variable&lt;br /&gt;
                + Update should not fail if absent if spec. 2.&lt;br /&gt;
                      # A Specification 2 parameter. &lt;br /&gt;
    * Spec 1 parameters used in Spec 2:&lt;br /&gt;
          o Should still accept hostfile and urlfile responses for spec. 2.&lt;br /&gt;
                + Beacon Cache (I and II) accepts these parameters on spec 2. &lt;br /&gt;
    * The &#039;spec&#039; paameter can be used to force a specification:&lt;br /&gt;
          o Only known to exist in Beacon Cache II, it can force the request to be handled as a specification 1 or 2 request.&lt;br /&gt;
          o Spec 1 = &#039;spec=1&#039;&lt;br /&gt;
          o Spec 2 = &#039;spec=2&#039;&lt;br /&gt;
          o If &#039;spec&#039; is not equal to any current spec, then default to the predetermined spec. &lt;br /&gt;
    * Multiple variable requests&lt;br /&gt;
          o If for instance a ping and request exist, you should always handle them properly.&lt;br /&gt;
                + Same goes with other combos like an update and ping, statfile + ping and info. &lt;br /&gt;
          o Handle multiple variables as BEST as possible!&lt;br /&gt;
                + Some scanners and GWCs like to fit all their requests into one URL send. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;row recovery, end&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Further Information:&lt;br /&gt;
&lt;br /&gt;
* [http://www.gnucleus.com/gwebcache/ Original GWC site]&lt;br /&gt;
** [http://gnucleus.sourceforge.net/gwebcache/specs.html GWC Spec. 1]&lt;br /&gt;
** [http://gnucleus.sourceforge.net/gwebcache/newgwc.html GWC Spec. 2] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;content recovered from last aviable backup&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Gnutella Web Cache===&lt;br /&gt;
Gnutella requires Gnutella Web Caches (GWC) to get IPs to establish a connection to the network.  These are critical to ensuring the health of the network.  If you have a dedicated server and can spare some extra bandwidth then please consider running a GWC.  People that don&#039;t have a dedicated server or are on normal broadband consumer lines should not run a cache from home.&lt;br /&gt;
&lt;br /&gt;
A GWC is a simple script that can be put on any webserver that supports one of the following scripting languages:&lt;br /&gt;
*JSP (Java Servlet)&lt;br /&gt;
**[http://web.archive.org/web/20061108091447/http://www.mager.org/GWebCache/ Java Servlet GWebCache Application (Archive.org)]&lt;br /&gt;
*C&lt;br /&gt;
**[http://github.com/gtk-gnutella/gwc GhostWhiteCrab]&lt;br /&gt;
*Perl &lt;br /&gt;
**[http://www.jonatkins.com/perlgcache/ Jon Atkins&#039; perlgcache] &lt;br /&gt;
**The original [http://www.gnucleus.com/gwebcache/dist/ GnuWebCache]&lt;br /&gt;
*PHP &lt;br /&gt;
**[http://gwcii.sourceforge.net/ PHPGnuCacheII] - MySQL&lt;br /&gt;
**[http://www.bazookanetworks.com Bazooka G2WC] (recommended) - flat files&lt;br /&gt;
**[http://sourceforge.net/projects/skulls/ Skulls! Multi-Network WebCache] - flat files&lt;br /&gt;
=== Further Information: ===&lt;br /&gt;
* [http://www.gnucleus.com/gwebcache/ Original GWC site]&lt;br /&gt;
&lt;br /&gt;
[[Category:External Links]]&lt;/div&gt;</summary>
		<author><name>Ale5000</name></author>
	</entry>
	<entry>
		<id>https://shareaza.sourceforge.net/w/index.php?title=Developers.TestingEnvironment.Server.GWC&amp;diff=11516</id>
		<title>Developers.TestingEnvironment.Server.GWC</title>
		<link rel="alternate" type="text/html" href="https://shareaza.sourceforge.net/w/index.php?title=Developers.TestingEnvironment.Server.GWC&amp;diff=11516"/>
		<updated>2015-11-25T13:23:02Z</updated>

		<summary type="html">&lt;p&gt;Ale5000: Remove link to died site / Added link to GWC list&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you want to run a Gnutella / Gnutella2 GWebCache, you can find a list [[GWC_specs|here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You need to modify some settings from config.php file&lt;br /&gt;
&lt;br /&gt;
==Bazooka config.php settings (Originally by Atomo64) (It will be modified)==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$BAZ_ROOT = &amp;quot;\g2data\&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
E: This is the path to the directory where the cache data is going to be stored.&lt;br /&gt;
&lt;br /&gt;
T: Most of the web servers run over a unix or linux plataform, so the path can be like this: ./data/(note that this is not a full path, so if you change the main script of directory it is not going to work). But over a Windows plataform the path can be like this: data\, note that Windows paths uses a back slash instead of a normal slash, what makes that using &amp;quot;&amp;quot; as a string format the back slash has to be double, but if it is replaced with &#039;&#039;, a normal back slash can work.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$BAZ_PASS = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
E: This is not used.&lt;br /&gt;
&lt;br /&gt;
T: You can remove it if you want, it is not going to affect anything.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$BAZ_DISABLED = 0;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
E: It is going to complitely disable the cache.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$BAZ_DEBUG = 0;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
E: Changes the PHP settings to show all level error messages.&lt;br /&gt;
&lt;br /&gt;
T: It is used for developers for find bugs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$BAZ_LOG = 0;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
E: It is not used since the stats package was never released.&lt;br /&gt;
&lt;br /&gt;
T: Keep it because bazooka is going to check if it is set to true or false.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$BAZ_KS_ON = 0;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
E: This feature makes that when a there&#039;s a cache submission, the cache url is checked for validation and it connects to it to know if it works or not and if it is a web cache.&lt;br /&gt;
&lt;br /&gt;
T: This may cause a double check of the URL, so, it is not recommended to enable it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$BAZ_URL_ON = 1;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
E: When enabled(and PHP allows it), it is going to connect to the cache that is submited to check for validation. When it is disabled, bazooka is going to block any cache submission.&lt;br /&gt;
&lt;br /&gt;
T: It is very important to enable it, so you can keep a clean cache.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$BAZ_LEAF_COUNT = 1;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
E: When a host is submited, it must have atleast 50 leafs so it is added to the cache.&lt;br /&gt;
&lt;br /&gt;
T: This doesn&#039;t really have functionallity, because if you limit the hosts to have 50 leafs, reduces the chances that a client that is searching a hub to connect to can find a hub where it can get a place.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$BAZ_FSOCKTO = 30;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
E: It is wrongly used in the code, so it doesn&#039;t affect the timeout.&lt;br /&gt;
&lt;br /&gt;
T: You have to keep the var, but any value can be used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$BAZ_LOGROOT = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
E: Unknown usage.&lt;br /&gt;
&lt;br /&gt;
T: You have to keep it because it is mentioned by the script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$BAZ_CACHE_RC = 14;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
E: When a cache is submited and it already exists, if it is older than $BAZ_CACHE_RC days, bazooka is going to validate the cache again, so if it still exists the time is going to be updated, if not, it is going to be removed.&lt;br /&gt;
&lt;br /&gt;
T: You can keep it with a 14 days value, because less time can make a waste of bandwidth and more time can make the cache data become old.&lt;/div&gt;</summary>
		<author><name>Ale5000</name></author>
	</entry>
	<entry>
		<id>https://shareaza.sourceforge.net/w/index.php?title=GWC_specs&amp;diff=11515</id>
		<title>GWC specs</title>
		<link rel="alternate" type="text/html" href="https://shareaza.sourceforge.net/w/index.php?title=GWC_specs&amp;diff=11515"/>
		<updated>2015-11-11T11:12:16Z</updated>

		<summary type="html">&lt;p&gt;Ale5000: Fixed GhostWhiteCrab link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;For general information on GWCs, have a look at the [[GWC]] Wiki page.&#039;&#039;&lt;br /&gt;
{{do not translate}}&lt;br /&gt;
This page is thought to give an overview over the GWC specifications as they are implemented into Shareaza.&lt;br /&gt;
&lt;br /&gt;
A GWC is a simple script that can be put on any webserver that supports one of the following scripting languages: &lt;br /&gt;
&lt;br /&gt;
* JSP (Java Servlet) &lt;br /&gt;
** [http://www1.mager.org/GWebCache/ Jums Web Cache] (Excellent for heavy loads) &lt;br /&gt;
* C &lt;br /&gt;
** [http://github.com/gtk-gnutella/gwc GhostWhiteCrab] (For dedicated server environments and people who know how to compile C source code!) &lt;br /&gt;
* ASP &lt;br /&gt;
** [http://www.edazzle.net/downloads/gerry.zip Gerry GWC] &lt;br /&gt;
** [https://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=7846&amp;amp;lngWId=4 Lynn (v.s. 0.5)] &lt;br /&gt;
** [https://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=7731&amp;amp;lngWId=4 Lynn (v.s. 0.4)] &lt;br /&gt;
** [http://www.poundwebhosting.com/cgi-bin/lynnx.asp LynnX] &lt;br /&gt;
* Perl &lt;br /&gt;
** [http://www.jonatkins.com/perlgcache/ Jon Atkins&#039; perlgcache] &lt;br /&gt;
** The original [http://www.gnucleus.com/gwebcache/dist/ GnuWebCache] &lt;br /&gt;
* &#039;&#039;&#039;PHP&#039;&#039;&#039; &#039;&#039;(Tip: PHP GWCs are usually the easiest to run and setup on a server.)&#039;&#039;&lt;br /&gt;
** [http://gwcii.sourceforge.net/ PHPGnuCacheII] &lt;br /&gt;
** Bazooka G2WC&lt;br /&gt;
** [http://sourceforge.net/projects/skulls/ Skulls! Multi-Network WebCache] &lt;br /&gt;
** [http://sourceforge.net/projects/beaconcache/ Beacon Cache] &lt;br /&gt;
** [http://code.google.com/p/cachechu/ Cachechu G2WC] &lt;br /&gt;
** The original [http://www.gnucleus.com/gwebcache/dist/ GnuWebCache] &#039;&#039;(PHP version is no longer supported)&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
== Breakdown Of The Gnutella Web Caches: == &lt;br /&gt;
{{RecoveredPage|I recently put this into a table. The contents need to be verified -- [[User:Cyko 01|Cyko 01]]}}&lt;br /&gt;
&lt;br /&gt;
{| width= auto; style=&amp;quot;font-size: 85%; text-align: center;text-valign: middle;&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Cache:&lt;br /&gt;
! rowspan=1 |Gnutella:&lt;br /&gt;
! rowspan=1 |Gnutella2:&lt;br /&gt;
! rowspan=1 |Spec 1:&lt;br /&gt;
! rowspan=1 |Spec 2:&lt;br /&gt;
! rowspan=1 |Flat-File:&lt;br /&gt;
! rowspan=1 |SQL:&lt;br /&gt;
! rowspan=1 |Installer:&lt;br /&gt;
! rowspan=1 |Other Networks:&lt;br /&gt;
! rowspan=1 |Different network instances:&lt;br /&gt;
! rowspan=1 |Latest release date:&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Beacon Cache (Core 2)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|style=&amp;quot;background: #CCFFCC;&amp;quot;| Yes (As of 0.2.0 Alpha)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 2009-09-14&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Beacon Cache (Core 1)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Skulls&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 2015-04-10&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|JumsWebCache&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|GnuWebCache (Perl)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|GnuWebCache (PHP) &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|GhostWhiteCrab(GWC) &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|style=&amp;quot;background: #FFFFCC;&amp;quot;| N/A&lt;br /&gt;
|style=&amp;quot;background: #FFFFCC;&amp;quot;| N/A&lt;br /&gt;
|style=&amp;quot;background: #FFFFCC;&amp;quot;| N/A&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|PHPGnuCacheII &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Bazooka &lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Cachechu&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Perlgcache&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Gerry GWC (v2)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Gerry GWC (v1)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Lynn&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|LynnX&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Shareaza Specific Details == &lt;br /&gt;
&lt;br /&gt;
{{RecoveredPage|Warninig: here I have pasted better formatted recovery, but not verified. Row recovery has been mooved below as I don&#039;t know if anybody has made any changes in it. If not then row recovery can be deleted. Paste starts from &amp;gt;&amp;gt;Shareaza Specific Details&amp;lt;&amp;lt;, here, and ends at second &amp;gt;&amp;gt;Shareaza Specific Details&amp;lt;&amp;lt; I hope it is visible.  --[[User:Ocexyz|Ocexyz]] 23:27, 27 July 2009 (UTC)}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Get String Breakdown:&#039;&#039;&#039; &lt;br /&gt;
* Update a leaf &lt;br /&gt;
** &amp;quot;?update=1&amp;amp;ip=(ip):(port)&amp;amp;x_leaves=(leaf count) &lt;br /&gt;
* Ping Variable &lt;br /&gt;
** Appends &amp;amp;ping=1 to identify the cache name in debug messages (for gnutella and gnutella2 in 2.4.0.0, but only for gnutella2 now in 2.4.0.X for spec1 cache compatibility). &lt;br /&gt;
** This feature new to Shareaza. &lt;br /&gt;
* Network Variable &lt;br /&gt;
** Appends &amp;amp;net=gnutella2 on Gnutella2 queries. &lt;br /&gt;
** Does NOT append a network variable on Gnutella(1) queries. &lt;br /&gt;
* Client Name / Version Format (2.4.0.0 and earlier): &lt;br /&gt;
** &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) ) &lt;br /&gt;
** &amp;amp;version=(Shareaza&#039;s version) &lt;br /&gt;
* Client Name / Version Format (2.4.0.X): &lt;br /&gt;
** If Gnutella &lt;br /&gt;
*** &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) ) &lt;br /&gt;
*** &amp;amp;version=(Shareaza&#039;s version) &lt;br /&gt;
** If Gnutella2 &lt;br /&gt;
*** &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) )+(Shareaza&#039;s version) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GWC Response Matching:&#039;&#039;&#039; &lt;br /&gt;
* i| &lt;br /&gt;
** Informational output alone will not be taken as GWC &#039;success.&#039; &lt;br /&gt;
* i|access|period|(time in sec.) &lt;br /&gt;
** Time in seconds before Shareaza is allowed to make a request to the cache. &lt;br /&gt;
* i|update|period|(time in sec.) &lt;br /&gt;
** Time in seconds before Shareaza is allowed to update to the cache. &lt;br /&gt;
* i|force|remove and i|update|warning|bad url &lt;br /&gt;
** Remove the GWC from the internal list. &lt;br /&gt;
* Some Response Matches (added in 2.3.1.X) &lt;br /&gt;
** i|NO-URL-NO-HOSTS &lt;br /&gt;
*** Outputs warning of the cache being totally empty to the system log. &lt;br /&gt;
** i|NO-URL &lt;br /&gt;
*** Outputs warning of the cache having no alternative URLs to the system log. &lt;br /&gt;
** i|NO-HOSTS &lt;br /&gt;
*** Outputs warning of the cache having no hosts to the system log. &lt;br /&gt;
** i|warning| &lt;br /&gt;
*** Outputs warning of the cache to the system log. &lt;br /&gt;
** ERROR Something Failed &lt;br /&gt;
*** Outputs warning of the cache to the system log(Buggy Bazooka GWCs workaround). &lt;br /&gt;
** i|warning|You came back too early (2.3.1.X) &lt;br /&gt;
** i|warning|client|early (2.3.1.X) &lt;br /&gt;
** WARNING: You came back too early (2.3.1.X) &lt;br /&gt;
** ERROR: Client returned too early (2.3.1.X) &lt;br /&gt;
*** Flood detection for the update side. &lt;br /&gt;
*** Outputs GWebCache(update) Too many connection attempts to the system log. &lt;br /&gt;
** too early (2.3.1.X) &lt;br /&gt;
** early (2.4.0.X) &lt;br /&gt;
*** Flood detection for the request side. &lt;br /&gt;
*** Outputs GWebCache URL: Too many connection attempts to the system log. &lt;br /&gt;
** i|update|OK &lt;br /&gt;
*** Outputs &amp;quot;GWebCache(v2) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
** OK &lt;br /&gt;
*** Outputs &amp;quot;GWebCache(v1) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
&lt;br /&gt;
== Gnutella Web Cache Specifications ==&lt;br /&gt;
==== Specification 1: ====&lt;br /&gt;
* &#039;&#039;&#039;Networks Served&#039;&#039;&#039; &lt;br /&gt;
** Gnutella &lt;br /&gt;
* &#039;&#039;&#039;Format&#039;&#039;&#039; &lt;br /&gt;
** Update went fine: &lt;br /&gt;
*** Ex: OK &lt;br /&gt;
** Update Warning (Small prob., not that bad): &lt;br /&gt;
*** Ex: OKWARNING: Error Message &lt;br /&gt;
&lt;br /&gt;
* Severe Warning (No &#039;OK&#039; message sent) &lt;br /&gt;
** Ex: WARNING: Error Message&lt;br /&gt;
&lt;br /&gt;
* URL Output: &lt;br /&gt;
** Ex: [http://somefreakinrandomcache.com/cache/gcache.php http://somefreakinrandomcache.com/cache/gcache.php] &lt;br /&gt;
*** OR - WITH A PORT NUMBER (If not 80) &lt;br /&gt;
**** Ex: [http://somefreakinrandomcache.com:8080/cache/gcache.php http://somefreakinrandomcache.com:8080/cache/gcache.php] &lt;br /&gt;
* Host Output: &lt;br /&gt;
** Ex: 66.132.55.12:6346 &lt;br /&gt;
* Pong (ping variable response) - was explained below under the topic: variables. &lt;br /&gt;
* &#039;&#039;&#039;Example Cache Output (Beacon Cache) For urlfile Command&#039;&#039;&#039; &lt;br /&gt;
** Example &amp;quot;urlfile Output&amp;quot; URL: Ex: [http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;urlfile=1 http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;urlfile=1] &lt;br /&gt;
*** Example URL Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Getting urls with a pong combined&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| PONG Beacon Cache 0.1.5D Beta[http://gwc.frodoslair.net/skulls/skulls.php http://gwc.frodoslair.net/skulls/skulls.php][http://bbs.robertwoolley.co.uk/GWebCache/gcache.php http://bbs.robertwoolley.co.uk/GWebCache/gcache.php][http://g2.tjtech.org/g2/ http://g2.tjtech.org/g2/][http://g2.tjtech.org/g2/index.php http://g2.tjtech.org/g2/index.php][http://gwc.monnsta.net/ http://gwc.monnsta.net/][http://holograph.uni.cc/other/skulls.php http://holograph.uni.cc/other/skulls.php][http://gwc.nickstallman.net/ http://gwc.nickstallman.net/][http://gwc.eod.cc/skulls.php http://gwc.eod.cc/skulls.php][http://gwc.frodoslair.net/skulls/skulls http://gwc.frodoslair.net/skulls/skulls][http://gwc.werwin.net/skulls.php http://gwc.werwin.net/skulls.php] &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
* &#039;&#039;&#039;Example Cache Output (Beacon Cache) For hostfile Command&#039;&#039;&#039; &lt;br /&gt;
** Example &amp;quot;hostfile Output&amp;quot; URL: Ex: [http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;hostfile=1 http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;hostfile=1] &lt;br /&gt;
*** Example Host Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Getting the hosts with a pong combined&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| PONG Beacon Cache 0.1.5D Beta71.8.84.153:391599.248.214.157:2752969.60.241.55:16369193.253.239.246:3021868.156.175.121:634871.179.7.241:1834474.196.22.241:634812.210.197.194:10531222.150.143.77:1000058.85.231.135:634624.141.199.164:2020572.175.201.195:634869.81.129.228:488097.81.221.63:1321970.15.130.224:7759216.211.188.106:5190375.167.168.156:4866012.214.14.3:3591676.177.244.106:2418098.165.218.139:3963068.112.182.125:368568.117.204.57:2348265.12.154.25:4076069.180.47.169:571175.138.40.173:2498798.201.19.0:3366270.187.2.144:634868.186.209.107:1442969.159.7.61:634876.208.176.196:48199&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
* &#039;&#039;&#039;For combining a hostfile and urlfile request:&#039;&#039;&#039; &lt;br /&gt;
** Warning: This is non-standard. &lt;br /&gt;
** &#039;&#039;&#039;Example Cache Output (Beacon Cache) For bfile Command&#039;&#039;&#039; &lt;br /&gt;
*** Example &amp;quot;bfile Output&amp;quot; URL: Ex: [http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;bfile=1 http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;bfile=1] &lt;br /&gt;
**** Example Host and URL Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Getting the hosts and urls with a pong combined&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| PONG Beacon Cache 0.1.5D Beta71.8.84.153:391599.248.214.157:2752969.60.241.55:16369193.253.239.246:3021868.156.175.121:634871.179.7.241:1834474.196.22.241:634812.210.197.194:10531222.150.143.77:1000058.85.231.135:634624.141.199.164:2020572.175.201.195:634869.81.129.228:488097.81.221.63:1321970.15.130.224:7759216.211.188.106:5190375.167.168.156:4866012.214.14.3:3591676.177.244.106:2418098.165.218.139:3963068.112.182.125:368568.117.204.57:2348265.12.154.25:4076069.180.47.169:571175.138.40.173:2498798.201.19.0:3366270.187.2.144:634868.186.209.107:1442969.159.7.61:634876.208.176.196:48199[http://gwc.frodoslair.net/skulls/skulls.php http://gwc.frodoslair.net/skulls/skulls.php][http://bbs.robertwoolley.co.uk/GWebCache/gcache.php http://bbs.robertwoolley.co.uk/GWebCache/gcache.php][http://g2.tjtech.org/g2/ http://g2.tjtech.org/g2/][http://g2.tjtech.org/g2/index.php http://g2.tjtech.org/g2/index.php][http://gwc.monnsta.net/ http://gwc.monnsta.net/][http://holograph.uni.cc/other/skulls.php http://holograph.uni.cc/other/skulls.php][http://gwc.nickstallman.net/ http://gwc.nickstallman.net/][http://gwc.eod.cc/skulls.php http://gwc.eod.cc/skulls.php][http://gwc.frodoslair.net/skulls/skulls http://gwc.frodoslair.net/skulls/skulls][http://gwc.werwin.net/skulls.php http://gwc.werwin.net/skulls.php] &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Variables&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Mandatory&#039;&#039;&#039; &lt;br /&gt;
** ping: &lt;br /&gt;
*** Response should have this always: PONG&lt;br /&gt;
*** After, put the cache&#039;s name. ex: PONG fakecache 0.01&lt;br /&gt;
** client: &lt;br /&gt;
*** Four letter code of the client. ex: RAZA &lt;br /&gt;
** version: &lt;br /&gt;
*** Version number of the client. &lt;br /&gt;
** urlfile: &lt;br /&gt;
*** Used by the client to request alternate cache urls. &lt;br /&gt;
** hostfile: &lt;br /&gt;
*** Used by the client to request IPs with port numbers attached. &lt;br /&gt;
** url: &lt;br /&gt;
*** Client update giving an alternate cache URL. &lt;br /&gt;
*** Formatted with a http:// prefix to each cache. &lt;br /&gt;
** ip: &lt;br /&gt;
*** Client update giving one&#039;s IP to submit. &lt;br /&gt;
** url1: &lt;br /&gt;
*** OLD OUTDATED Client update giving an alternate cache URL. &lt;br /&gt;
*** Formatted with a http:// prefix to each cache. &lt;br /&gt;
** ip1: &lt;br /&gt;
*** OLD OUTDATED Client update giving one&#039;s IP to submit. &lt;br /&gt;
* &#039;&#039;&#039;Optional&#039;&#039;&#039; &lt;br /&gt;
** bfile: &lt;br /&gt;
*** For clients to request both URLs and IPs from the cache at the same time. &lt;br /&gt;
** statfile: &lt;br /&gt;
*** Statistics of the cache request: &lt;br /&gt;
**** First line: Total requests of the cache number. &lt;br /&gt;
**** Second line: Requests of the cache an hour number. &lt;br /&gt;
**** Third line: Updates of the cache an hour number.&lt;br /&gt;
&lt;br /&gt;
==== Specification 2: ====&lt;br /&gt;
&#039;&#039;&#039;Networks Served&#039;&#039;&#039; &lt;br /&gt;
* Gnutella, Gnutella2, etc. &lt;br /&gt;
&#039;&#039;&#039;Format&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Information Output&#039;&#039;&#039; &lt;br /&gt;
** Starts with: I| &lt;br /&gt;
*** &#039;&#039;&#039;Categories&#039;&#039;&#039; &lt;br /&gt;
**** &#039;&#039;&#039;Pong&#039;&#039;&#039; (ping variable response) - Described below under the topic: variables. &lt;br /&gt;
**** &#039;&#039;&#039;Update Status Response&#039;&#039;&#039; &lt;br /&gt;
***** Format: I|update &lt;br /&gt;
***** &#039;&#039;&#039;Responses&#039;&#039;&#039; &lt;br /&gt;
****** I|update|OK &lt;br /&gt;
******* - Everything went fine. &lt;br /&gt;
****** I|update|OK|WARNING &lt;br /&gt;
******* Small warning. &lt;br /&gt;
****** I|update|WARNING &lt;br /&gt;
******* Severe warning &lt;br /&gt;
**** &#039;&#039;&#039;Plain Warnings&#039;&#039;&#039; &lt;br /&gt;
***** Format: I|WARNING &lt;br /&gt;
****** Append any warning messages after it - Ex: I|WARNING|You came back too early &lt;br /&gt;
**** &#039;&#039;&#039;Extra Info&#039;&#039;&#039; - Described below under the topic: variables. &lt;br /&gt;
* &#039;&#039;&#039;Host Output&#039;&#039;&#039; &lt;br /&gt;
** Starts with: H| &lt;br /&gt;
** Add the IP with its port: &lt;br /&gt;
*** Ex: H|0.0.0.0:6346 &lt;br /&gt;
** Add the time, thereafter, of the host&#039;s (In seconds*) time in cache: &lt;br /&gt;
*** Ex: H|0.0.0.0:6346|45 &lt;br /&gt;
** If cluster exists with cluster=somerandomwords &lt;br /&gt;
*** Add the clustered words after the host&#039;s age: &lt;br /&gt;
**** Ex: H|0.0.0.0:6346|45|somerandomwords &lt;br /&gt;
* &#039;&#039;&#039;URL Output&#039;&#039;&#039; &lt;br /&gt;
** Starts with: U| &lt;br /&gt;
** Add the URL with http:// before it, plus the port (if it&#039;s not 80). &lt;br /&gt;
*** Ex: U|[http://somerandomcache.com/ http://somerandomcache.com/] &lt;br /&gt;
** Add the time, thereafter, of the URL&#039;s time (In seconds*) in cache: &lt;br /&gt;
*** Ex: U|[http://somerandomcache.com/%7C45 http://somerandomcache.com/|45] &lt;br /&gt;
* &#039;&#039;&#039;Example Cache Output (Beacon Cache) For get Command&#039;&#039;&#039; &lt;br /&gt;
** Example URL: [http://grantgalitz.com/Beacon/gwc.php?get=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;net=gnutella2&amp;amp;ping=1 http://grantgalitz.com/Beacon/gwc.php?get=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;net=gnutella2&amp;amp;ping=1] &lt;br /&gt;
*** Example &amp;quot;Get&amp;quot; Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Getting the hosts and urls with a pong combined&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| I|pong|Beacon Cache 0.1.5D Beta|gnutella-gnutella2H|65.9.200.243:4968|248261H|68.228.129.75:44599|242678H|98.240.196.122:8206|240719H|76.104.12.133:14921|218273H|69.136.1.12:3924|211610H|81.154.208.71:8595|174402H|97.96.105.51:2076|153610H|74.192.153.212:39340|144203H|72.190.106.57:12584|132984H|78.93.71.132:12334|125668H|82.43.248.184:27560|97974H|196.205.224.97:6357|86763H|74.129.219.30:33172|82005H|76.104.12.133:19185|57182H|69.59.83.131:18442|38628U|[http://www.k33bz.com/g2/bazooka.php%7C248639 http://www.k33bz.com/g2/bazooka.php|248639]U|[http://gwebcache.ns1.net/%7C248592 http://gwebcache.ns1.net/|248592]U|[http://gwc2.wodi.org/skulls.php%7C248384 http://gwc2.wodi.org/skulls.php|248384]U|[http://gwc.guufshop.com/skulls/skulls.php%7C248322 http://gwc.guufshop.com/skulls/skulls.php|248322]U|[http://groovy.syxy.com/up/skulls.php%7C248300 http://groovy.syxy.com/up/skulls.php|248300]U|[http://g2.tjtech.org/g2/index.php%7C247770 http://g2.tjtech.org/g2/index.php|247770]U|[http://midian.jayl.de/g2/bazooka.php%7C240719 http://midian.jayl.de/g2/bazooka.php|240719]U|[http://www.dom2porno.info/skulls/skulls.php%7C207473 http://www.dom2porno.info/skulls/skulls.php|207473]U|[http://gwc.frodoslair.net/skulls/skulls%7C125668 http://gwc.frodoslair.net/skulls/skulls|125668]U|[http://holograph.uni.cc/other/skulls.php%7C9642 http://holograph.uni.cc/other/skulls.php|9642] &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Variables&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Mandatory&#039;&#039;&#039; &lt;br /&gt;
** ping: &lt;br /&gt;
*** Main Part: I|pong| &lt;br /&gt;
*** Then add the cache name and version: I|pong|fakecache 0.01 &lt;br /&gt;
*** Then lastly add the network support: &lt;br /&gt;
**** I|pong|fakecache 0.01|gnutella &lt;br /&gt;
***** - Gnutella only &lt;br /&gt;
**** I|pong|fakecache 0.01|gnutella2 &lt;br /&gt;
***** - Gnutella2 only &lt;br /&gt;
**** I|pong|fakecache 0.01|gnutella-gnutella2 &lt;br /&gt;
***** - Gnutella and Gnutella2 served &lt;br /&gt;
** get: &lt;br /&gt;
*** Used by clients to requests alternate cache URLs along with IPs and their port numbers. &lt;br /&gt;
** update: &lt;br /&gt;
*** url: &lt;br /&gt;
**** Client update giving an alternate cache URL. &lt;br /&gt;
**** Formatted with a http:// prefix to each cache. &lt;br /&gt;
*** ip: &lt;br /&gt;
**** Client update giving one&#039;s IP to submit. &lt;br /&gt;
** net: &lt;br /&gt;
*** Which network to serve the client. &lt;br /&gt;
**** Gnutella &lt;br /&gt;
***** Ex: net=gnutella &lt;br /&gt;
**** Gnutella2 &lt;br /&gt;
***** Ex: net=gnutella2 &lt;br /&gt;
**** &#039;&#039;&#039;Should always be lowercase&#039;&#039;&#039; &lt;br /&gt;
***** GWCs should automatically convert network name given to lowercase to prevent Net ID mismatches &lt;br /&gt;
&lt;br /&gt;
solely on case alone. &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
* &lt;br /&gt;
** client: &lt;br /&gt;
*** Four letter code of the client. ex: RAZA &lt;br /&gt;
** version: &lt;br /&gt;
*** Version number of the client. &lt;br /&gt;
* &#039;&#039;&#039;Optional&#039;&#039;&#039; &lt;br /&gt;
** cluster: &lt;br /&gt;
*** To add extra info to an IP update. &lt;br /&gt;
**** Output by cache: H|0.0.0.0|AGE OF HOST (Seconds)|clustering some bull**** &lt;br /&gt;
** statfile: &lt;br /&gt;
*** Exactly like the specification 1 statfile &#039;&#039;&#039;(Same routine and output style)&#039;&#039;&#039;. &lt;br /&gt;
*** Statistics of the cache request: &lt;br /&gt;
**** First line: Total requests of the cache number. &lt;br /&gt;
**** Second line: Requests of the cache an hour number. &lt;br /&gt;
**** Third line: Updates of the cache an hour number. &lt;br /&gt;
&lt;br /&gt;
==== Specification 2.1 ====&lt;br /&gt;
&#039;&#039;&#039;This is an extension of specification 2, not a separate specification!&#039;&#039;&#039; &lt;br /&gt;
Pong extension &lt;br /&gt;
* Append the networks supported joined by a hyphen &#039;-&#039;. &lt;br /&gt;
* Used for client-side validation of networks supported and for network support reporting to other web caches. &lt;br /&gt;
* Format: &lt;br /&gt;
** I|pong|cache name|network names joined by &#039;-&#039; &lt;br /&gt;
** Format Examples: &lt;br /&gt;
*** I|pong|fakecache 0.01|gnutella &lt;br /&gt;
**** - Gnutella only &lt;br /&gt;
*** I|pong|fakecache 0.01|gnutella2 &lt;br /&gt;
**** - Gnutella2 only &lt;br /&gt;
*** I|pong|fakecache 0.01|gnutella-gnutella2 &lt;br /&gt;
**** - Gnutella and Gnutella2 served &lt;br /&gt;
Host Output &lt;br /&gt;
* Just like specification 2, but with more fields supported for host output. &lt;br /&gt;
** H|ip:port|age in cache|clustering|leaves|4 letter vendor code|reported uptime of host|max. leaves possible &lt;br /&gt;
*** The host, age, and clustering fields are all still the same as in specification 2. &lt;br /&gt;
*** The leaf count of the hub reported is in the 5th field. &lt;br /&gt;
*** The vendor code with version number is in the 6th field. &lt;br /&gt;
Request Control Variables: &lt;br /&gt;
* getleaves &lt;br /&gt;
** Used to obtain leaf counts of hubs given &lt;br /&gt;
** 4th field ultilized for current leaf count. &lt;br /&gt;
** 7th field ultilized for maximum leaf slots possible. &lt;br /&gt;
** Use this as &#039;getleaves=1&#039; or &#039;getleaves&#039; to enable. &lt;br /&gt;
* getclusters &lt;br /&gt;
** Enables/Disables clustering. &lt;br /&gt;
** Use this as &#039;getclusters=1&#039;. &lt;br /&gt;
** Using &#039;getclusters&#039; or &#039;getclusters=0&#039; disables cluster output. &lt;br /&gt;
* getvendors &lt;br /&gt;
** Used to obtain the vendor code w/ version number of the hubs given. &lt;br /&gt;
** Found in the 5th field. &lt;br /&gt;
** Use this as &#039;getvendors=1&#039; or &#039;getvendors&#039; to enable. &lt;br /&gt;
* getuptime &lt;br /&gt;
** Used to obtain the vendor code w/ version number of the hubs given. &lt;br /&gt;
** Value is static, do not change the value given when time passes. &lt;br /&gt;
** Found in the 6th field. &lt;br /&gt;
** Use this as &#039;getuptime=1&#039; or &#039;getuptime&#039; to enable. &lt;br /&gt;
* spec &lt;br /&gt;
** To force the specification parameter &lt;br /&gt;
** Currently is only supported by Beacon Cache II &lt;br /&gt;
* pv &lt;br /&gt;
** Similar to the &#039;spec&#039; parameter, except that it does not force, instead it simply negotiates the specification. &lt;br /&gt;
Special Data Requests &lt;br /&gt;
* info &lt;br /&gt;
** Outputs extra details of your cache. &lt;br /&gt;
*** Start with the informational response: I| &lt;br /&gt;
**** Ex: I|open-source|1 &lt;br /&gt;
* support &lt;br /&gt;
** Outputs USEFUL details of your cache. &lt;br /&gt;
*** Start with the informational response: I| &lt;br /&gt;
**** Ex: I|support|gnutella2 &lt;br /&gt;
* getnetworks &lt;br /&gt;
** Outputs the enabled networks in two formats. &lt;br /&gt;
*** Start with the informational response: I| &lt;br /&gt;
**** For the &#039;I|nets|&#039; line &lt;br /&gt;
***** The third field contains the supported networks joined by &#039;-&#039;. &lt;br /&gt;
**** For the &#039;I|networks|&#039; line &lt;br /&gt;
***** Interpret the fields from 3 and beyond as individual network names to challenge against. &lt;br /&gt;
*** Examples &lt;br /&gt;
**** &lt;br /&gt;
***** I|nets|gnutella-gnutella2 &lt;br /&gt;
***** I|networks|gnutella|gnutella2 &lt;br /&gt;
Update Extension Variables: &lt;br /&gt;
* x_leaves &lt;br /&gt;
** Number of leaves running on a given hub or ultrapeer. &lt;br /&gt;
** &#039;&#039;&#039;Value must not be greater than an integer value of 2047.&#039;&#039;&#039; &lt;br /&gt;
** &#039;&#039;&#039;Note: It is important to know that PHP automaticaly replace dots with underscores, so to keep compatibility with old/new version of clients all caches should support both variants, example: x.leaves x_leaves&#039;&#039;&#039; &lt;br /&gt;
* x_max &lt;br /&gt;
** Maximum number of leaves possible on a given hub or ultrapeer. &lt;br /&gt;
** &#039;&#039;&#039;Value must not be greater than an integer value of 2047.&#039;&#039;&#039; &lt;br /&gt;
* uptime &lt;br /&gt;
** Value submitted must be an integer value of the number of seconds of uptime. &lt;br /&gt;
** &#039;&#039;&#039;Value must not be greater than an integer value of 1 year (31536000) and less than 1 hour (60).&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== Pinging Caches With Your Cache ===&lt;br /&gt;
&#039;&#039;&#039;Please follow this standard:&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Client: TEST&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Version: Your Cache&#039;s Name&#039;&#039;&#039; &lt;br /&gt;
** The old value for &amp;quot;version&amp;quot; was 1 &lt;br /&gt;
&#039;&#039;&#039;Some variables to attach to the ping (compatibility):&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;multi&#039;&#039;&#039; &lt;br /&gt;
** Used by some gwcs in their pings to other gwcs. &lt;br /&gt;
** &amp;lt;nowiki&amp;gt;It tells the pinged cache to ignore the &amp;quot;net&amp;quot; parameter (so it should never say network not supported) and outputting the pong using this format, if possible, &amp;quot;I|pong|[cache name] [cache version]|[supported networks list]&amp;quot; - example: I|pong|Skulls 0.2.9|gnutella-gnutella2 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
** Used by Skulls GWC only, supported by Skulls and Beacon Cache II. &lt;br /&gt;
* &#039;&#039;&#039;cache&#039;&#039;&#039; &lt;br /&gt;
** This is added to every request made by some gwcs, it is for statistical purposes only. &lt;br /&gt;
** It simply tells the remote cache that the client is a GWC. &lt;br /&gt;
&#039;&#039;&#039;Help&#039;&#039;&#039; &lt;br /&gt;
* For PHP &lt;br /&gt;
** Use the fsockopen() function to open a connection to a cache. &lt;br /&gt;
*** Make sure you &amp;quot;write&amp;quot; to the fsockopen carry value to open the GWC&#039;s target file. &lt;br /&gt;
**** [http://us.php.net/manual/en/function.fsockopen.php http://us.php.net/manual/en/function.fsockopen.php] &lt;br /&gt;
&lt;br /&gt;
=== Variable Combination Standards ===&lt;br /&gt;
&#039;&#039;&#039;Net variable decides specification!&#039;&#039;&#039; &lt;br /&gt;
* There are many ways to determine spec., but going with net is the safe way. &lt;br /&gt;
* Skulls GWC does not use the network parameter to determine specification level. &lt;br /&gt;
* Beacon Cache (I and II) uses the network parameter to determine the specification level. &lt;br /&gt;
&#039;&#039;&#039;Your cache needs to be able to process certain combinations of variables.&#039;&#039;&#039; &lt;br /&gt;
* Update variable &lt;br /&gt;
** Update should not fail if absent if spec. 2. &lt;br /&gt;
*** A Specification 2 parameter. &lt;br /&gt;
Spec 1 parameters used in Spec 2: &lt;br /&gt;
* Should still accept hostfile and urlfile responses for spec. 2. &lt;br /&gt;
** Beacon Cache (I and II) accepts these parameters on spec 2. &lt;br /&gt;
The &#039;spec&#039; paameter can be used to force a specification: &lt;br /&gt;
* Only known to exist in Beacon Cache II, it can force the request to be handled as a specification 1 or 2 request. &lt;br /&gt;
* Spec 1 = &#039;spec=1&#039; &lt;br /&gt;
* Spec 2 = &#039;spec=2&#039; &lt;br /&gt;
* If &#039;spec&#039; is not equal to any current spec, then default to the predetermined spec. &lt;br /&gt;
&#039;&#039;&#039;Multiple variable requests&#039;&#039;&#039; &lt;br /&gt;
* If for instance a ping and request exist, you should always handle them properly. &lt;br /&gt;
** Same goes with other combos like an update and ping, statfile + ping and info. &lt;br /&gt;
* Handle multiple variables as BEST as possible! &lt;br /&gt;
** Some scanners and GWCs like to fit all their requests into one URL send. &lt;br /&gt;
&lt;br /&gt;
=== Further Information: ===&lt;br /&gt;
* [http://www.gnucleus.com/gwebcache/ Original GWC] [http://www.gnucleus.com/gwebcache/ site] &lt;br /&gt;
** [http://gnucleus.sourceforge.net/gwebcache/specs.html GWC Spec. 1] &lt;br /&gt;
** [http://gnucleus.sourceforge.net/gwebcache/newgwc.html GWC Spec. 2] &lt;br /&gt;
&lt;br /&gt;
=== Gnutella Web Cache ===&lt;br /&gt;
Gnutella requires Gnutella Web Caches (GWC) to get IPs to establish a connection to the network.  These are critical to ensuring the health of the network.  If you have a dedicated server and can spare some extra bandwidth then please consider running a GWC.  People that don&#039;t have a dedicated server or are on normal broadband consumer lines should not run a cache from home.&lt;br /&gt;
&lt;br /&gt;
A GWC is a simple script that can be put on any webserver that supports one of the following scripting languages:&lt;br /&gt;
*JSP (Java Servlet)&lt;br /&gt;
**[http://web.archive.org/web/20061108091447/http://www.mager.org/GWebCache/ Java Servlet GWebCache Application (Archive.org)]&lt;br /&gt;
*C&lt;br /&gt;
**[http://github.com/gtk-gnutella/gwc GhostWhiteCrab]&lt;br /&gt;
*Perl &lt;br /&gt;
**[http://www.jonatkins.com/perlgcache/ Jon Atkins&#039; perlgcache] &lt;br /&gt;
**The original [http://www.gnucleus.com/gwebcache/dist/ GnuWebCache]&lt;br /&gt;
*PHP &lt;br /&gt;
**[http://gwcii.sourceforge.net/ PHPGnuCacheII] - MySQL&lt;br /&gt;
**[http://www.bazookanetworks.com Bazooka G2WC] (recommended) - flat files&lt;br /&gt;
**[http://sourceforge.net/projects/skulls/ Skulls! Multi-Network WebCache] - flat files&lt;br /&gt;
====Further Information:====&lt;br /&gt;
*[http://www.gnucleus.com/gwebcache/|Original GWC site]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{RecoveredPage|--&amp;gt;Saved in timestamp 20090421202728Retrieved from &amp;quot;[https://www.pantheraproject.net/wiki/index.php?title=GWC This page was last modified on April 18, 2009, at 23:25. &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;Copyright © 2002-2009 Shareaza Development Team. &amp;lt;/center&amp;gt;&amp;lt;center&amp;gt;[[Image:poweredby_mediawiki_88x31.png]] --[[User:Ocexyz|Ocexyz]] 16:20, 27 July 2009 (UTC)}}&lt;br /&gt;
&lt;br /&gt;
{{RecoveredPage|Warninig: here ends pasted better formatted recovery. Row recovery has been mooved below as I don&#039;t know if anybody has made any changes in it. If not then row recovery can be deleted I suppose. Paste starts from == Shareaza Specific Details == and ends at second == Shareaza Specific Details ==, here. I hope it is visible.  --[[User:Ocexyz|Ocexyz]] 16:20, 27 July 2009 (UTC)  }}&lt;br /&gt;
&lt;br /&gt;
==Shareaza Specific Details==&lt;br /&gt;
&lt;br /&gt;
{{RecoveredPage|Warninig: here ends pasted better formatted recovery. Row recovery has been mooved below as I don&#039;t know if anybody has made any changes in it. If not then row recovery can be deleted I suppose. Paste starts from &amp;gt;&amp;gt;Shareaza Specific Details&amp;lt;&amp;lt; and ends at second &amp;gt;&amp;gt; Shareaza Specific Details&amp;lt;&amp;lt;, here. I hope it is visible.  --[[User:Ocexyz|Ocexyz]] 23:27, 27 July 2009 (UTC)  }}&lt;br /&gt;
&lt;br /&gt;
* Get String Breakdown:&lt;br /&gt;
          o Update a leaf&lt;br /&gt;
                + &amp;quot;?update=1&amp;amp;ip=(ip):(port)&amp;amp;x_leaves=(leaf count) &lt;br /&gt;
          o Ping Variable&lt;br /&gt;
                + Appends &amp;amp;ping=1 to identify the cache name in debug messages (for gnutella and gnutella2 in 2.4.0.0, but only for gnutella2 now in 2.4.0.X for spec1 cache compatibility).&lt;br /&gt;
                + This feature new to Shareaza. &lt;br /&gt;
          o Network Variable&lt;br /&gt;
                + Appends &amp;amp;net=gnutella2 on Gnutella2 queries.&lt;br /&gt;
                + Does NOT append a network variable on Gnutella(1) queries. &lt;br /&gt;
          o Client Name / Version Format (2.4.0.0 and earlier):&lt;br /&gt;
                + &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) )&lt;br /&gt;
                + &amp;amp;version=(Shareaza&#039;s version) &lt;br /&gt;
          o Client Name / Version Format (2.4.0.X):&lt;br /&gt;
                + If Gnutella&lt;br /&gt;
                      # &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) )&lt;br /&gt;
                      # &amp;amp;version=(Shareaza&#039;s version) &lt;br /&gt;
                + If Gnutella2&lt;br /&gt;
                      # &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) )+(Shareaza&#039;s version) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* GWC Response Matching:&lt;br /&gt;
          o i|&lt;br /&gt;
                + Informational output alone will not be taken as GWC &#039;success.&#039; &lt;br /&gt;
          o i|access|period|(time in sec.)&lt;br /&gt;
                + Time in seconds before Shareaza is allowed to make a request to the cache. &lt;br /&gt;
          o i|update|period|(time in sec.)&lt;br /&gt;
                + Time in seconds before Shareaza is allowed to update to the cache. &lt;br /&gt;
          o i|force|remove and i|update|warning|bad url&lt;br /&gt;
                + Remove the GWC from the internal list. &lt;br /&gt;
          o Some Response Matches (added in 2.3.1.X)&lt;br /&gt;
                + i|NO-URL-NO-HOSTS&lt;br /&gt;
                      # Outputs warning of the cache being totally empty to the system log. &lt;br /&gt;
                + i|NO-URL&lt;br /&gt;
                      # Outputs warning of the cache having no alternative URLs to the system log. &lt;br /&gt;
                + i|NO-HOSTS&lt;br /&gt;
                      # Outputs warning of the cache having no hosts to the system log. &lt;br /&gt;
                + i|warning|&lt;br /&gt;
                      # Outputs warning of the cache to the system log. &lt;br /&gt;
                + ERROR Something Failed&lt;br /&gt;
                      # Outputs warning of the cache to the system log(Buggy Bazooka GWCs workaround). &lt;br /&gt;
                + i|warning|You came back too early (2.3.1.X)&lt;br /&gt;
                + i|warning|client|early (2.3.1.X)&lt;br /&gt;
                + WARNING: You came back too early (2.3.1.X)&lt;br /&gt;
                + ERROR: Client returned too early (2.3.1.X)&lt;br /&gt;
                      # Flood detection for the update side.&lt;br /&gt;
                      # Outputs GWebCache(update) Too many connection attempts to the system log. &lt;br /&gt;
                + too early (2.3.1.X)&lt;br /&gt;
                + early (2.4.0.X)&lt;br /&gt;
                      # Flood detection for the request side.&lt;br /&gt;
                      # Outputs GWebCache URL: Too many connection attempts to the system log. &lt;br /&gt;
                + i|update|OK&lt;br /&gt;
                      # Outputs &amp;quot;GWebCache(v2) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
                + OK&lt;br /&gt;
                      # Outputs &amp;quot;GWebCache(v1) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* GWC Response Matching:&lt;br /&gt;
          o i|&lt;br /&gt;
                + Informational output alone will not be taken as GWC &#039;success.&#039; &lt;br /&gt;
          o i|access|period|(time in sec.)&lt;br /&gt;
                + Time in seconds before Shareaza is allowed to make a request to the cache. &lt;br /&gt;
          o i|update|period|(time in sec.)&lt;br /&gt;
                + Time in seconds before Shareaza is allowed to update to the cache. &lt;br /&gt;
          o i|force|remove and i|update|warning|bad url&lt;br /&gt;
                + Remove the GWC from the internal list. &lt;br /&gt;
          o Some Response Matches (added in 2.3.1.X)&lt;br /&gt;
                + i|NO-URL-NO-HOSTS&lt;br /&gt;
                      # Outputs warning of the cache being totally empty to the system log. &lt;br /&gt;
                + i|NO-URL&lt;br /&gt;
                      # Outputs warning of the cache having no alternative URLs to the system log. &lt;br /&gt;
                + i|NO-HOSTS&lt;br /&gt;
                      # Outputs warning of the cache having no hosts to the system log. &lt;br /&gt;
                + i|warning|&lt;br /&gt;
                      # Outputs warning of the cache to the system log. &lt;br /&gt;
                + ERROR Something Failed&lt;br /&gt;
                      # Outputs warning of the cache to the system log(Buggy Bazooka GWCs workaround). &lt;br /&gt;
                + i|warning|You came back too early (2.3.1.X)&lt;br /&gt;
                + i|warning|client|early (2.3.1.X)&lt;br /&gt;
                + WARNING: You came back too early (2.3.1.X)&lt;br /&gt;
                + ERROR: Client returned too early (2.3.1.X)&lt;br /&gt;
                      # Flood detection for the update side.&lt;br /&gt;
                      # Outputs GWebCache(update) Too many connection attempts to the system log. &lt;br /&gt;
                + too early (2.3.1.X)&lt;br /&gt;
                + early (2.4.0.X)&lt;br /&gt;
                      # Flood detection for the request side.&lt;br /&gt;
                      # Outputs GWebCache URL: Too many connection attempts to the system log. &lt;br /&gt;
                + i|update|OK&lt;br /&gt;
                      # Outputs &amp;quot;GWebCache(v2) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
                + OK&lt;br /&gt;
                      # Outputs &amp;quot;GWebCache(v1) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Gnutella Web Cache Specifications==&lt;br /&gt;
&amp;lt;end of partial recovery by OCE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;end of recovered content&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;row recovery, start&amp;gt; &lt;br /&gt;
 Specification 1:&lt;br /&gt;
&lt;br /&gt;
    * Networks Served&lt;br /&gt;
          o Gnutella &lt;br /&gt;
    * Format&lt;br /&gt;
          o Update went fine:&lt;br /&gt;
                + Ex: OK &lt;br /&gt;
          o Update Warning (Small prob., not that bad):&lt;br /&gt;
                + Ex: &lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
WARNING: Error Message&lt;br /&gt;
&lt;br /&gt;
    * Severe Warning (No &#039;OK&#039; message sent)&lt;br /&gt;
          o Ex: &lt;br /&gt;
&lt;br /&gt;
WARNING: Error Message&lt;br /&gt;
&lt;br /&gt;
    * URL Output:&lt;br /&gt;
          o Ex: http://somefreakinrandomcache.com/cache/gcache.php&lt;br /&gt;
                + OR - WITH A PORT NUMBER (If not 80)&lt;br /&gt;
                      # Ex: http://somefreakinrandomcache.com:8080/cache/gcache.php &lt;br /&gt;
    * Host Output:&lt;br /&gt;
          o Ex: 66.132.55.12:6346 &lt;br /&gt;
    * Pong (ping variable response) - was explained below under the topic: variables.&lt;br /&gt;
    * Example Cache Output (Beacon Cache) For urlfile Command&lt;br /&gt;
          o Example &amp;quot;urlfile Output&amp;quot; URL: Ex: http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;urlfile=1&lt;br /&gt;
                + Example URL Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting urls with a pong combined&lt;br /&gt;
&lt;br /&gt;
PONG Beacon Cache 0.1.5D Beta&lt;br /&gt;
http://gwc.frodoslair.net/skulls/skulls.php&lt;br /&gt;
http://bbs.robertwoolley.co.uk/GWebCache/gcache.php&lt;br /&gt;
http://g2.tjtech.org/g2/&lt;br /&gt;
http://g2.tjtech.org/g2/index.php&lt;br /&gt;
http://gwc.monnsta.net/&lt;br /&gt;
http://holograph.uni.cc/other/skulls.php&lt;br /&gt;
http://gwc.nickstallman.net/&lt;br /&gt;
http://gwc.eod.cc/skulls.php&lt;br /&gt;
http://gwc.frodoslair.net/skulls/skulls&lt;br /&gt;
http://gwc.werwin.net/skulls.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * Example Cache Output (Beacon Cache) For hostfile Command&lt;br /&gt;
          o Example &amp;quot;hostfile Output&amp;quot; URL: Ex: http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;hostfile=1&lt;br /&gt;
                + Example Host Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting the hosts with a pong combined&lt;br /&gt;
&lt;br /&gt;
PONG Beacon Cache 0.1.5D Beta&lt;br /&gt;
71.8.84.153:3915&lt;br /&gt;
99.248.214.157:27529&lt;br /&gt;
69.60.241.55:16369&lt;br /&gt;
193.253.239.246:30218&lt;br /&gt;
68.156.175.121:6348&lt;br /&gt;
71.179.7.241:18344&lt;br /&gt;
74.196.22.241:6348&lt;br /&gt;
12.210.197.194:10531&lt;br /&gt;
222.150.143.77:10000&lt;br /&gt;
58.85.231.135:6346&lt;br /&gt;
24.141.199.164:20205&lt;br /&gt;
72.175.201.195:6348&lt;br /&gt;
69.81.129.228:4880&lt;br /&gt;
97.81.221.63:13219&lt;br /&gt;
70.15.130.224:7759&lt;br /&gt;
216.211.188.106:51903&lt;br /&gt;
75.167.168.156:48660&lt;br /&gt;
12.214.14.3:35916&lt;br /&gt;
76.177.244.106:24180&lt;br /&gt;
98.165.218.139:39630&lt;br /&gt;
68.112.182.125:3685&lt;br /&gt;
68.117.204.57:23482&lt;br /&gt;
65.12.154.25:40760&lt;br /&gt;
69.180.47.169:5711&lt;br /&gt;
75.138.40.173:24987&lt;br /&gt;
98.201.19.0:33662&lt;br /&gt;
70.187.2.144:6348&lt;br /&gt;
68.186.209.107:14429&lt;br /&gt;
69.159.7.61:6348&lt;br /&gt;
76.208.176.196:48199&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * For combining a hostfile and urlfile request:&lt;br /&gt;
          o Warning: This is non-standard.&lt;br /&gt;
          o Example Cache Output (Beacon Cache) For bfile Command&lt;br /&gt;
                + Example &amp;quot;bfile Output&amp;quot; URL: Ex: http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;bfile=1&lt;br /&gt;
                      # Example Host and URL Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting the hosts and urls with a pong combined&lt;br /&gt;
&lt;br /&gt;
PONG Beacon Cache 0.1.5D Beta&lt;br /&gt;
71.8.84.153:3915&lt;br /&gt;
99.248.214.157:27529&lt;br /&gt;
69.60.241.55:16369&lt;br /&gt;
193.253.239.246:30218&lt;br /&gt;
68.156.175.121:6348&lt;br /&gt;
71.179.7.241:18344&lt;br /&gt;
74.196.22.241:6348&lt;br /&gt;
12.210.197.194:10531&lt;br /&gt;
222.150.143.77:10000&lt;br /&gt;
58.85.231.135:6346&lt;br /&gt;
24.141.199.164:20205&lt;br /&gt;
72.175.201.195:6348&lt;br /&gt;
69.81.129.228:4880&lt;br /&gt;
97.81.221.63:13219&lt;br /&gt;
70.15.130.224:7759&lt;br /&gt;
216.211.188.106:51903&lt;br /&gt;
75.167.168.156:48660&lt;br /&gt;
12.214.14.3:35916&lt;br /&gt;
76.177.244.106:24180&lt;br /&gt;
98.165.218.139:39630&lt;br /&gt;
68.112.182.125:3685&lt;br /&gt;
68.117.204.57:23482&lt;br /&gt;
65.12.154.25:40760&lt;br /&gt;
69.180.47.169:5711&lt;br /&gt;
75.138.40.173:24987&lt;br /&gt;
98.201.19.0:33662&lt;br /&gt;
70.187.2.144:6348&lt;br /&gt;
68.186.209.107:14429&lt;br /&gt;
69.159.7.61:6348&lt;br /&gt;
76.208.176.196:48199&lt;br /&gt;
http://gwc.frodoslair.net/skulls/skulls.php&lt;br /&gt;
http://bbs.robertwoolley.co.uk/GWebCache/gcache.php&lt;br /&gt;
http://g2.tjtech.org/g2/&lt;br /&gt;
http://g2.tjtech.org/g2/index.php&lt;br /&gt;
http://gwc.monnsta.net/&lt;br /&gt;
http://holograph.uni.cc/other/skulls.php&lt;br /&gt;
http://gwc.nickstallman.net/&lt;br /&gt;
http://gwc.eod.cc/skulls.php&lt;br /&gt;
http://gwc.frodoslair.net/skulls/skulls&lt;br /&gt;
http://gwc.werwin.net/skulls.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * Variables&lt;br /&gt;
          o Mandatory&lt;br /&gt;
                + ping:&lt;br /&gt;
                      # Response should have this always: PONG&lt;br /&gt;
                      # After, put the cache&#039;s name. ex: PONG fakecache 0.01&lt;br /&gt;
                + client:&lt;br /&gt;
                      # Four letter code of the client. ex: RAZA &lt;br /&gt;
                + version:&lt;br /&gt;
                      # Version number of the client. &lt;br /&gt;
                + urlfile:&lt;br /&gt;
                      # Used by the client to request alternate cache urls. &lt;br /&gt;
                + hostfile:&lt;br /&gt;
                      # Used by the client to request IPs with port numbers attached. &lt;br /&gt;
                + url:&lt;br /&gt;
                      # Client update giving an alternate cache URL.&lt;br /&gt;
                      # Formatted with a http:// prefix to each cache. &lt;br /&gt;
                + ip:&lt;br /&gt;
                      # Client update giving one&#039;s IP to submit. &lt;br /&gt;
                + url1:&lt;br /&gt;
                      # OLD OUTDATED Client update giving an alternate cache URL.&lt;br /&gt;
                      # Formatted with a http:// prefix to each cache. &lt;br /&gt;
                + ip1:&lt;br /&gt;
                      # OLD OUTDATED Client update giving one&#039;s IP to submit. &lt;br /&gt;
          o Optional&lt;br /&gt;
                + bfile:&lt;br /&gt;
                      # For clients to request both URLs and IPs from the cache at the same time. &lt;br /&gt;
                + statfile:&lt;br /&gt;
                      # Statistics of the cache request:&lt;br /&gt;
                            * First line: Total requests of the cache number.&lt;br /&gt;
                            * Second line: Requests of the cache an hour number.&lt;br /&gt;
                            * Third line: Updates of the cache an hour number. &lt;br /&gt;
&lt;br /&gt;
Specification 2:&lt;br /&gt;
&lt;br /&gt;
    * Networks Served&lt;br /&gt;
          o Gnutella, Gnutella2, etc. &lt;br /&gt;
    * Format&lt;br /&gt;
          o Information Output&lt;br /&gt;
                + Starts with: I|&lt;br /&gt;
                      # Categories&lt;br /&gt;
                            * Pong (ping variable response) - Described below under the topic: variables.&lt;br /&gt;
                            * Update Status Response&lt;br /&gt;
                                  o Format: I|update&lt;br /&gt;
                                  o Responses&lt;br /&gt;
                                        + I|update|OK&lt;br /&gt;
                                              # - Everything went fine. &lt;br /&gt;
                                        + I|update|OK|WARNING&lt;br /&gt;
                                              # Small warning. &lt;br /&gt;
                                        + I|update|WARNING&lt;br /&gt;
                                              # Severe warning &lt;br /&gt;
                            * Plain Warnings&lt;br /&gt;
                                  o Format: I|WARNING&lt;br /&gt;
                                        + Append any warning messages after it - Ex: I|WARNING|You came back too early &lt;br /&gt;
                            * Extra Info - Described below under the topic: variables. &lt;br /&gt;
          o Host Output&lt;br /&gt;
                + Starts with: H|&lt;br /&gt;
                + Add the IP with its port:&lt;br /&gt;
                      # Ex: H|0.0.0.0:6346 &lt;br /&gt;
                + Add the time, thereafter, of the host&#039;s (In seconds*) time in cache:&lt;br /&gt;
                      # Ex: H|0.0.0.0:6346|45 &lt;br /&gt;
                + If cluster exists with cluster=somerandomwords&lt;br /&gt;
                      # Add the clustered words after the host&#039;s age:&lt;br /&gt;
                            * Ex: H|0.0.0.0:6346|45|somerandomwords &lt;br /&gt;
          o URL Output&lt;br /&gt;
                + Starts with: U|&lt;br /&gt;
                + Add the URL with http:// before it, plus the port (if it&#039;s not 80).&lt;br /&gt;
                      # Ex: U|http://somerandomcache.com/ &lt;br /&gt;
                + Add the time, thereafter, of the URL&#039;s time (In seconds*) in cache:&lt;br /&gt;
                      # Ex: U|http://somerandomcache.com/|45 &lt;br /&gt;
          o Example Cache Output (Beacon Cache) For get Command&lt;br /&gt;
                + Example URL: http://grantgalitz.com/Beacon/gwc.php?get=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;net=gnutella2&amp;amp;ping=1&lt;br /&gt;
                      # Example &amp;quot;Get&amp;quot; Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting the hosts and urls with a pong combined&lt;br /&gt;
&lt;br /&gt;
I|pong|Beacon Cache 0.1.5D Beta|gnutella-gnutella2&lt;br /&gt;
H|65.9.200.243:4968|248261&lt;br /&gt;
H|68.228.129.75:44599|242678&lt;br /&gt;
H|98.240.196.122:8206|240719&lt;br /&gt;
H|76.104.12.133:14921|218273&lt;br /&gt;
H|69.136.1.12:3924|211610&lt;br /&gt;
H|81.154.208.71:8595|174402&lt;br /&gt;
H|97.96.105.51:2076|153610&lt;br /&gt;
H|74.192.153.212:39340|144203&lt;br /&gt;
H|72.190.106.57:12584|132984&lt;br /&gt;
H|78.93.71.132:12334|125668&lt;br /&gt;
H|82.43.248.184:27560|97974&lt;br /&gt;
H|196.205.224.97:6357|86763&lt;br /&gt;
H|74.129.219.30:33172|82005&lt;br /&gt;
H|76.104.12.133:19185|57182&lt;br /&gt;
H|69.59.83.131:18442|38628&lt;br /&gt;
U|http://www.k33bz.com/g2/bazooka.php|248639&lt;br /&gt;
U|http://gwebcache.ns1.net/|248592&lt;br /&gt;
U|http://gwc2.wodi.org/skulls.php|248384&lt;br /&gt;
U|http://gwc.guufshop.com/skulls/skulls.php|248322&lt;br /&gt;
U|http://groovy.syxy.com/up/skulls.php|248300&lt;br /&gt;
U|http://g2.tjtech.org/g2/index.php|247770&lt;br /&gt;
U|http://midian.jayl.de/g2/bazooka.php|240719&lt;br /&gt;
U|http://www.dom2porno.info/skulls/skulls.php|207473&lt;br /&gt;
U|http://gwc.frodoslair.net/skulls/skulls|125668&lt;br /&gt;
U|http://holograph.uni.cc/other/skulls.php|9642&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * Variables&lt;br /&gt;
          o Mandatory&lt;br /&gt;
                + ping:&lt;br /&gt;
                      # Main Part: I|pong|&lt;br /&gt;
                      # Then add the cache name and version: I|pong|fakecache 0.01&lt;br /&gt;
                      # Then lastly add the network support:&lt;br /&gt;
                            * I|pong|fakecache 0.01|gnutella&lt;br /&gt;
                                  o - Gnutella only &lt;br /&gt;
                            * I|pong|fakecache 0.01|gnutella2&lt;br /&gt;
                                  o - Gnutella2 only &lt;br /&gt;
                            * I|pong|fakecache 0.01|gnutella-gnutella2&lt;br /&gt;
                                  o - Gnutella and Gnutella2 served &lt;br /&gt;
                + get:&lt;br /&gt;
                      # Used by clients to requests alternate cache URLs along with IPs and their port numbers. &lt;br /&gt;
                + update:&lt;br /&gt;
                      # url:&lt;br /&gt;
                            * Client update giving an alternate cache URL.&lt;br /&gt;
                            * Formatted with a http:// prefix to each cache. &lt;br /&gt;
                      # ip:&lt;br /&gt;
                            * Client update giving one&#039;s IP to submit. &lt;br /&gt;
                + net:&lt;br /&gt;
                      # Which network to serve the client.&lt;br /&gt;
                            * Gnutella&lt;br /&gt;
                                  o Ex: net=gnutella &lt;br /&gt;
                            * Gnutella2&lt;br /&gt;
                                  o Ex: net=gnutella2 &lt;br /&gt;
                            * Should always be lowercase&lt;br /&gt;
                                  o GWCs should automatically convert network name given to lowercase to prevent Net ID mismatches &lt;br /&gt;
&lt;br /&gt;
solely on case alone.&lt;br /&gt;
&lt;br /&gt;
    *&lt;br /&gt;
          o&lt;br /&gt;
                + client:&lt;br /&gt;
                      # Four letter code of the client. ex: RAZA &lt;br /&gt;
                + version:&lt;br /&gt;
                      # Version number of the client. &lt;br /&gt;
          o Optional&lt;br /&gt;
                + cluster:&lt;br /&gt;
                      # To add extra info to an IP update.&lt;br /&gt;
                            * Output by cache: H|0.0.0.0|AGE OF HOST (Seconds)|clustering some bull**** &lt;br /&gt;
                + statfile:&lt;br /&gt;
                      # Exactly like the specification 1 statfile (Same routine and output style).&lt;br /&gt;
                      # Statistics of the cache request:&lt;br /&gt;
                            * First line: Total requests of the cache number.&lt;br /&gt;
                            * Second line: Requests of the cache an hour number.&lt;br /&gt;
                            * Third line: Updates of the cache an hour number. &lt;br /&gt;
&lt;br /&gt;
Specification 2.1&lt;br /&gt;
&lt;br /&gt;
    * This is an extension of specification 2, not a separate specification!&lt;br /&gt;
    * Pong extension&lt;br /&gt;
          o Append the networks supported joined by a hyphen &#039;-&#039;.&lt;br /&gt;
          o Used for client-side validation of networks supported and for network support reporting to other web caches.&lt;br /&gt;
          o Format:&lt;br /&gt;
                + I|pong|cache name|network names joined by &#039;-&#039;&lt;br /&gt;
                + Format Examples:&lt;br /&gt;
                      # I|pong|fakecache 0.01|gnutella&lt;br /&gt;
                            * - Gnutella only &lt;br /&gt;
                      # I|pong|fakecache 0.01|gnutella2&lt;br /&gt;
                            * - Gnutella2 only &lt;br /&gt;
                      # I|pong|fakecache 0.01|gnutella-gnutella2&lt;br /&gt;
                            * - Gnutella and Gnutella2 served &lt;br /&gt;
    * Host Output&lt;br /&gt;
          o Just like specification 2, but with more fields supported for host output.&lt;br /&gt;
                + H|ip:port|age in cache|clustering|leaves|4 letter vendor code|reported uptime of host|max. leaves possible&lt;br /&gt;
                      # The host, age, and clustering fields are all still the same as in specification 2.&lt;br /&gt;
                      # The leaf count of the hub reported is in the 5th field.&lt;br /&gt;
                      # The vendor code with version number is in the 6th field. &lt;br /&gt;
    * Request Control Variables:&lt;br /&gt;
          o getleaves&lt;br /&gt;
                + Used to obtain leaf counts of hubs given&lt;br /&gt;
                + 4th field ultilized for current leaf count.&lt;br /&gt;
                + 7th field ultilized for maximum leaf slots possible.&lt;br /&gt;
                + Use this as &#039;getleaves=1&#039; or &#039;getleaves&#039; to enable. &lt;br /&gt;
          o getclusters&lt;br /&gt;
                + Enables/Disables clustering.&lt;br /&gt;
                + Use this as &#039;getclusters=1&#039;.&lt;br /&gt;
                + Using &#039;getclusters&#039; or &#039;getclusters=0&#039; disables cluster output. &lt;br /&gt;
          o getvendors&lt;br /&gt;
                + Used to obtain the vendor code w/ version number of the hubs given.&lt;br /&gt;
                + Found in the 5th field.&lt;br /&gt;
                + Use this as &#039;getvendors=1&#039; or &#039;getvendors&#039; to enable. &lt;br /&gt;
          o getuptime&lt;br /&gt;
                + Used to obtain the vendor code w/ version number of the hubs given.&lt;br /&gt;
                + Value is static, do not change the value given when time passes.&lt;br /&gt;
                + Found in the 6th field.&lt;br /&gt;
                + Use this as &#039;getuptime=1&#039; or &#039;getuptime&#039; to enable. &lt;br /&gt;
          o spec&lt;br /&gt;
                + To force the specification parameter&lt;br /&gt;
                + Currently is only supported by Beacon Cache II &lt;br /&gt;
          o pv&lt;br /&gt;
                + Similar to the &#039;spec&#039; parameter, except that it does not force, instead it simply negotiates the specification. &lt;br /&gt;
    * Special Data Requests&lt;br /&gt;
          o info&lt;br /&gt;
                + Outputs extra details of your cache.&lt;br /&gt;
                      # Start with the informational response: I|&lt;br /&gt;
                            * Ex: I|open-source|1 &lt;br /&gt;
          o support&lt;br /&gt;
                + Outputs USEFUL details of your cache.&lt;br /&gt;
                      # Start with the informational response: I|&lt;br /&gt;
                            * Ex: I|support|gnutella2 &lt;br /&gt;
          o getnetworks&lt;br /&gt;
                + Outputs the enabled networks in two formats.&lt;br /&gt;
                      # Start with the informational response: I|&lt;br /&gt;
                            * For the &#039;I|nets|&#039; line&lt;br /&gt;
                                  o The third field contains the supported networks joined by &#039;-&#039;. &lt;br /&gt;
                            * For the &#039;I|networks|&#039; line&lt;br /&gt;
                                  o Interpret the fields from 3 and beyond as individual network names to challenge against. &lt;br /&gt;
                      # Examples&lt;br /&gt;
                            *&lt;br /&gt;
                                  o I|nets|gnutella-gnutella2&lt;br /&gt;
                                  o I|networks|gnutella|gnutella2 &lt;br /&gt;
    * Update Extension Variables:&lt;br /&gt;
          o x_leaves&lt;br /&gt;
                + Number of leaves running on a given hub or ultrapeer.&lt;br /&gt;
                + Value must not be greater than an integer value of 2047.&lt;br /&gt;
                + Note: It is important to know that PHP automaticaly replace dots with underscores, so to keep compatibility with old/new version of clients all caches should support both variants, example: x.leaves x_leaves&lt;br /&gt;
          o x_max&lt;br /&gt;
                + Maximum number of leaves possible on a given hub or ultrapeer.&lt;br /&gt;
                + Value must not be greater than an integer value of 2047. &lt;br /&gt;
          o uptime&lt;br /&gt;
                + Value submitted must be an integer value of the number of seconds of uptime.&lt;br /&gt;
                + Value must not be greater than an integer value of 1 year (31536000) and less than 1 hour (60). &lt;br /&gt;
&lt;br /&gt;
Pinging Caches With Your Cache&lt;br /&gt;
&lt;br /&gt;
    * Please follow this standard:&lt;br /&gt;
          o Client: TEST&lt;br /&gt;
          o Version: Your Cache&#039;s Name&lt;br /&gt;
                + The old value for &amp;quot;version&amp;quot; was 1 &lt;br /&gt;
    * Some variables to attach to the ping (compatibility):&lt;br /&gt;
          o multi&lt;br /&gt;
                + Used by some gwcs in their pings to other gwcs.&lt;br /&gt;
                + It tells the pinged cache to ignore the &amp;quot;net&amp;quot; parameter (so it should never say network not supported) and outputting the pong using this format, if possible, &amp;quot;I|pong|[cache name] [cache version]|[supported networks list]|[url adding is enabled]&amp;quot; - example: I|pong|Skulls 0.2.8a|gnutella-gnutella2|1&lt;br /&gt;
                + Used by Skulls GWC only, supported by Skulls and Beacon Cache II. &lt;br /&gt;
          o cache&lt;br /&gt;
                + This is added to every request made by some gwcs, it is for statistical purposes only.&lt;br /&gt;
                + It simply tells the remote cache that the client is a GWC. &lt;br /&gt;
    * Help&lt;br /&gt;
          o For PHP&lt;br /&gt;
                + Use the fsockopen() function to open a connection to a cache.&lt;br /&gt;
                      # Make sure you &amp;quot;write&amp;quot; to the fsockopen carry value to open the GWC&#039;s target file.&lt;br /&gt;
                            * http://us.php.net/manual/en/function.fsockopen.php &lt;br /&gt;
&lt;br /&gt;
Variable Combination Standards&lt;br /&gt;
&lt;br /&gt;
    * Net variable decides specification!&lt;br /&gt;
          o There are many ways to determine spec., but going with net is the safe way.&lt;br /&gt;
          o Skulls GWC does not use the network parameter to determine specification level.&lt;br /&gt;
          o Beacon Cache (I and II) uses the network parameter to determine the specification level. &lt;br /&gt;
    * Your cache needs to be able to process certain combinations of variables.&lt;br /&gt;
          o Update variable&lt;br /&gt;
                + Update should not fail if absent if spec. 2.&lt;br /&gt;
                      # A Specification 2 parameter. &lt;br /&gt;
    * Spec 1 parameters used in Spec 2:&lt;br /&gt;
          o Should still accept hostfile and urlfile responses for spec. 2.&lt;br /&gt;
                + Beacon Cache (I and II) accepts these parameters on spec 2. &lt;br /&gt;
    * The &#039;spec&#039; paameter can be used to force a specification:&lt;br /&gt;
          o Only known to exist in Beacon Cache II, it can force the request to be handled as a specification 1 or 2 request.&lt;br /&gt;
          o Spec 1 = &#039;spec=1&#039;&lt;br /&gt;
          o Spec 2 = &#039;spec=2&#039;&lt;br /&gt;
          o If &#039;spec&#039; is not equal to any current spec, then default to the predetermined spec. &lt;br /&gt;
    * Multiple variable requests&lt;br /&gt;
          o If for instance a ping and request exist, you should always handle them properly.&lt;br /&gt;
                + Same goes with other combos like an update and ping, statfile + ping and info. &lt;br /&gt;
          o Handle multiple variables as BEST as possible!&lt;br /&gt;
                + Some scanners and GWCs like to fit all their requests into one URL send. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;row recovery, end&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Further Information:&lt;br /&gt;
&lt;br /&gt;
* [http://www.gnucleus.com/gwebcache/ Original GWC site]&lt;br /&gt;
** [http://gnucleus.sourceforge.net/gwebcache/specs.html GWC Spec. 1]&lt;br /&gt;
** [http://gnucleus.sourceforge.net/gwebcache/newgwc.html GWC Spec. 2] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;content recovered from last aviable backup&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Gnutella Web Cache===&lt;br /&gt;
Gnutella requires Gnutella Web Caches (GWC) to get IPs to establish a connection to the network.  These are critical to ensuring the health of the network.  If you have a dedicated server and can spare some extra bandwidth then please consider running a GWC.  People that don&#039;t have a dedicated server or are on normal broadband consumer lines should not run a cache from home.&lt;br /&gt;
&lt;br /&gt;
A GWC is a simple script that can be put on any webserver that supports one of the following scripting languages:&lt;br /&gt;
*JSP (Java Servlet)&lt;br /&gt;
**[http://web.archive.org/web/20061108091447/http://www.mager.org/GWebCache/ Java Servlet GWebCache Application (Archive.org)]&lt;br /&gt;
*C&lt;br /&gt;
**[http://github.com/gtk-gnutella/gwc GhostWhiteCrab]&lt;br /&gt;
*Perl &lt;br /&gt;
**[http://www.jonatkins.com/perlgcache/ Jon Atkins&#039; perlgcache] &lt;br /&gt;
**The original [http://www.gnucleus.com/gwebcache/dist/ GnuWebCache]&lt;br /&gt;
*PHP &lt;br /&gt;
**[http://gwcii.sourceforge.net/ PHPGnuCacheII] - MySQL&lt;br /&gt;
**[http://www.bazookanetworks.com Bazooka G2WC] (recommended) - flat files&lt;br /&gt;
**[http://sourceforge.net/projects/skulls/ Skulls! Multi-Network WebCache] - flat files&lt;br /&gt;
=== Further Information: ===&lt;br /&gt;
* [http://www.gnucleus.com/gwebcache/ Original GWC site]&lt;br /&gt;
&lt;br /&gt;
[[Category:External Links]]&lt;/div&gt;</summary>
		<author><name>Ale5000</name></author>
	</entry>
	<entry>
		<id>https://shareaza.sourceforge.net/w/index.php?title=GWC_specs&amp;diff=11514</id>
		<title>GWC specs</title>
		<link rel="alternate" type="text/html" href="https://shareaza.sourceforge.net/w/index.php?title=GWC_specs&amp;diff=11514"/>
		<updated>2015-10-18T19:05:03Z</updated>

		<summary type="html">&lt;p&gt;Ale5000: Added the date of latest release&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;For general information on GWCs, have a look at the [[GWC]] Wiki page.&#039;&#039;&lt;br /&gt;
{{do not translate}}&lt;br /&gt;
This page is thought to give an overview over the GWC specifications as they are implemented into Shareaza.&lt;br /&gt;
&lt;br /&gt;
A GWC is a simple script that can be put on any webserver that supports one of the following scripting languages: &lt;br /&gt;
&lt;br /&gt;
* JSP (Java Servlet) &lt;br /&gt;
** [http://www1.mager.org/GWebCache/ Jums Web Cache] (Excellent for heavy loads) &lt;br /&gt;
* C &lt;br /&gt;
** [http://sourceforge.net/projects/frostwire/files/GhostWhiteCrab/ GhostWhiteCrab] (For dedicated server environments and people who know how to compile C source code!) &lt;br /&gt;
* ASP &lt;br /&gt;
** [http://www.edazzle.net/downloads/gerry.zip Gerry GWC] &lt;br /&gt;
** [https://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=7846&amp;amp;lngWId=4 Lynn (v.s. 0.5)] &lt;br /&gt;
** [https://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=7731&amp;amp;lngWId=4 Lynn (v.s. 0.4)] &lt;br /&gt;
** [http://www.poundwebhosting.com/cgi-bin/lynnx.asp LynnX] &lt;br /&gt;
* Perl &lt;br /&gt;
** [http://www.jonatkins.com/perlgcache/ Jon Atkins&#039; perlgcache] &lt;br /&gt;
** The original [http://www.gnucleus.com/gwebcache/dist/ GnuWebCache] &lt;br /&gt;
* &#039;&#039;&#039;PHP&#039;&#039;&#039; &#039;&#039;(Tip: PHP GWCs are usually the easiest to run and setup on a server.)&#039;&#039;&lt;br /&gt;
** [http://gwcii.sourceforge.net/ PHPGnuCacheII] &lt;br /&gt;
** Bazooka G2WC&lt;br /&gt;
** [http://sourceforge.net/projects/skulls/ Skulls! Multi-Network WebCache] &lt;br /&gt;
** [http://sourceforge.net/projects/beaconcache/ Beacon Cache] &lt;br /&gt;
** [http://code.google.com/p/cachechu/ Cachechu G2WC] &lt;br /&gt;
** The original [http://www.gnucleus.com/gwebcache/dist/ GnuWebCache] &#039;&#039;(PHP version is no longer supported)&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
== Breakdown Of The Gnutella Web Caches: == &lt;br /&gt;
{{RecoveredPage|I recently put this into a table. The contents need to be verified -- [[User:Cyko 01|Cyko 01]]}}&lt;br /&gt;
&lt;br /&gt;
{| width= auto; style=&amp;quot;font-size: 85%; text-align: center;text-valign: middle;&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Cache:&lt;br /&gt;
! rowspan=1 |Gnutella:&lt;br /&gt;
! rowspan=1 |Gnutella2:&lt;br /&gt;
! rowspan=1 |Spec 1:&lt;br /&gt;
! rowspan=1 |Spec 2:&lt;br /&gt;
! rowspan=1 |Flat-File:&lt;br /&gt;
! rowspan=1 |SQL:&lt;br /&gt;
! rowspan=1 |Installer:&lt;br /&gt;
! rowspan=1 |Other Networks:&lt;br /&gt;
! rowspan=1 |Different network instances:&lt;br /&gt;
! rowspan=1 |Latest release date:&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Beacon Cache (Core 2)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|style=&amp;quot;background: #CCFFCC;&amp;quot;| Yes (As of 0.2.0 Alpha)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 2009-09-14&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Beacon Cache (Core 1)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Skulls&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| 2015-04-10&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|JumsWebCache&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|GnuWebCache (Perl)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|GnuWebCache (PHP) &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|GhostWhiteCrab(GWC) &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|style=&amp;quot;background: #FFFFCC;&amp;quot;| N/A&lt;br /&gt;
|style=&amp;quot;background: #FFFFCC;&amp;quot;| N/A&lt;br /&gt;
|style=&amp;quot;background: #FFFFCC;&amp;quot;| N/A&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|PHPGnuCacheII &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Bazooka &lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Cachechu&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Perlgcache&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Gerry GWC (v2)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Gerry GWC (v1)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Lynn&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|LynnX&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Shareaza Specific Details == &lt;br /&gt;
&lt;br /&gt;
{{RecoveredPage|Warninig: here I have pasted better formatted recovery, but not verified. Row recovery has been mooved below as I don&#039;t know if anybody has made any changes in it. If not then row recovery can be deleted. Paste starts from &amp;gt;&amp;gt;Shareaza Specific Details&amp;lt;&amp;lt;, here, and ends at second &amp;gt;&amp;gt;Shareaza Specific Details&amp;lt;&amp;lt; I hope it is visible.  --[[User:Ocexyz|Ocexyz]] 23:27, 27 July 2009 (UTC)}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Get String Breakdown:&#039;&#039;&#039; &lt;br /&gt;
* Update a leaf &lt;br /&gt;
** &amp;quot;?update=1&amp;amp;ip=(ip):(port)&amp;amp;x_leaves=(leaf count) &lt;br /&gt;
* Ping Variable &lt;br /&gt;
** Appends &amp;amp;ping=1 to identify the cache name in debug messages (for gnutella and gnutella2 in 2.4.0.0, but only for gnutella2 now in 2.4.0.X for spec1 cache compatibility). &lt;br /&gt;
** This feature new to Shareaza. &lt;br /&gt;
* Network Variable &lt;br /&gt;
** Appends &amp;amp;net=gnutella2 on Gnutella2 queries. &lt;br /&gt;
** Does NOT append a network variable on Gnutella(1) queries. &lt;br /&gt;
* Client Name / Version Format (2.4.0.0 and earlier): &lt;br /&gt;
** &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) ) &lt;br /&gt;
** &amp;amp;version=(Shareaza&#039;s version) &lt;br /&gt;
* Client Name / Version Format (2.4.0.X): &lt;br /&gt;
** If Gnutella &lt;br /&gt;
*** &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) ) &lt;br /&gt;
*** &amp;amp;version=(Shareaza&#039;s version) &lt;br /&gt;
** If Gnutella2 &lt;br /&gt;
*** &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) )+(Shareaza&#039;s version) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GWC Response Matching:&#039;&#039;&#039; &lt;br /&gt;
* i| &lt;br /&gt;
** Informational output alone will not be taken as GWC &#039;success.&#039; &lt;br /&gt;
* i|access|period|(time in sec.) &lt;br /&gt;
** Time in seconds before Shareaza is allowed to make a request to the cache. &lt;br /&gt;
* i|update|period|(time in sec.) &lt;br /&gt;
** Time in seconds before Shareaza is allowed to update to the cache. &lt;br /&gt;
* i|force|remove and i|update|warning|bad url &lt;br /&gt;
** Remove the GWC from the internal list. &lt;br /&gt;
* Some Response Matches (added in 2.3.1.X) &lt;br /&gt;
** i|NO-URL-NO-HOSTS &lt;br /&gt;
*** Outputs warning of the cache being totally empty to the system log. &lt;br /&gt;
** i|NO-URL &lt;br /&gt;
*** Outputs warning of the cache having no alternative URLs to the system log. &lt;br /&gt;
** i|NO-HOSTS &lt;br /&gt;
*** Outputs warning of the cache having no hosts to the system log. &lt;br /&gt;
** i|warning| &lt;br /&gt;
*** Outputs warning of the cache to the system log. &lt;br /&gt;
** ERROR Something Failed &lt;br /&gt;
*** Outputs warning of the cache to the system log(Buggy Bazooka GWCs workaround). &lt;br /&gt;
** i|warning|You came back too early (2.3.1.X) &lt;br /&gt;
** i|warning|client|early (2.3.1.X) &lt;br /&gt;
** WARNING: You came back too early (2.3.1.X) &lt;br /&gt;
** ERROR: Client returned too early (2.3.1.X) &lt;br /&gt;
*** Flood detection for the update side. &lt;br /&gt;
*** Outputs GWebCache(update) Too many connection attempts to the system log. &lt;br /&gt;
** too early (2.3.1.X) &lt;br /&gt;
** early (2.4.0.X) &lt;br /&gt;
*** Flood detection for the request side. &lt;br /&gt;
*** Outputs GWebCache URL: Too many connection attempts to the system log. &lt;br /&gt;
** i|update|OK &lt;br /&gt;
*** Outputs &amp;quot;GWebCache(v2) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
** OK &lt;br /&gt;
*** Outputs &amp;quot;GWebCache(v1) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
&lt;br /&gt;
== Gnutella Web Cache Specifications ==&lt;br /&gt;
==== Specification 1: ====&lt;br /&gt;
* &#039;&#039;&#039;Networks Served&#039;&#039;&#039; &lt;br /&gt;
** Gnutella &lt;br /&gt;
* &#039;&#039;&#039;Format&#039;&#039;&#039; &lt;br /&gt;
** Update went fine: &lt;br /&gt;
*** Ex: OK &lt;br /&gt;
** Update Warning (Small prob., not that bad): &lt;br /&gt;
*** Ex: OKWARNING: Error Message &lt;br /&gt;
&lt;br /&gt;
* Severe Warning (No &#039;OK&#039; message sent) &lt;br /&gt;
** Ex: WARNING: Error Message&lt;br /&gt;
&lt;br /&gt;
* URL Output: &lt;br /&gt;
** Ex: [http://somefreakinrandomcache.com/cache/gcache.php http://somefreakinrandomcache.com/cache/gcache.php] &lt;br /&gt;
*** OR - WITH A PORT NUMBER (If not 80) &lt;br /&gt;
**** Ex: [http://somefreakinrandomcache.com:8080/cache/gcache.php http://somefreakinrandomcache.com:8080/cache/gcache.php] &lt;br /&gt;
* Host Output: &lt;br /&gt;
** Ex: 66.132.55.12:6346 &lt;br /&gt;
* Pong (ping variable response) - was explained below under the topic: variables. &lt;br /&gt;
* &#039;&#039;&#039;Example Cache Output (Beacon Cache) For urlfile Command&#039;&#039;&#039; &lt;br /&gt;
** Example &amp;quot;urlfile Output&amp;quot; URL: Ex: [http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;urlfile=1 http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;urlfile=1] &lt;br /&gt;
*** Example URL Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Getting urls with a pong combined&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| PONG Beacon Cache 0.1.5D Beta[http://gwc.frodoslair.net/skulls/skulls.php http://gwc.frodoslair.net/skulls/skulls.php][http://bbs.robertwoolley.co.uk/GWebCache/gcache.php http://bbs.robertwoolley.co.uk/GWebCache/gcache.php][http://g2.tjtech.org/g2/ http://g2.tjtech.org/g2/][http://g2.tjtech.org/g2/index.php http://g2.tjtech.org/g2/index.php][http://gwc.monnsta.net/ http://gwc.monnsta.net/][http://holograph.uni.cc/other/skulls.php http://holograph.uni.cc/other/skulls.php][http://gwc.nickstallman.net/ http://gwc.nickstallman.net/][http://gwc.eod.cc/skulls.php http://gwc.eod.cc/skulls.php][http://gwc.frodoslair.net/skulls/skulls http://gwc.frodoslair.net/skulls/skulls][http://gwc.werwin.net/skulls.php http://gwc.werwin.net/skulls.php] &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
* &#039;&#039;&#039;Example Cache Output (Beacon Cache) For hostfile Command&#039;&#039;&#039; &lt;br /&gt;
** Example &amp;quot;hostfile Output&amp;quot; URL: Ex: [http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;hostfile=1 http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;hostfile=1] &lt;br /&gt;
*** Example Host Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Getting the hosts with a pong combined&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| PONG Beacon Cache 0.1.5D Beta71.8.84.153:391599.248.214.157:2752969.60.241.55:16369193.253.239.246:3021868.156.175.121:634871.179.7.241:1834474.196.22.241:634812.210.197.194:10531222.150.143.77:1000058.85.231.135:634624.141.199.164:2020572.175.201.195:634869.81.129.228:488097.81.221.63:1321970.15.130.224:7759216.211.188.106:5190375.167.168.156:4866012.214.14.3:3591676.177.244.106:2418098.165.218.139:3963068.112.182.125:368568.117.204.57:2348265.12.154.25:4076069.180.47.169:571175.138.40.173:2498798.201.19.0:3366270.187.2.144:634868.186.209.107:1442969.159.7.61:634876.208.176.196:48199&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
* &#039;&#039;&#039;For combining a hostfile and urlfile request:&#039;&#039;&#039; &lt;br /&gt;
** Warning: This is non-standard. &lt;br /&gt;
** &#039;&#039;&#039;Example Cache Output (Beacon Cache) For bfile Command&#039;&#039;&#039; &lt;br /&gt;
*** Example &amp;quot;bfile Output&amp;quot; URL: Ex: [http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;bfile=1 http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;bfile=1] &lt;br /&gt;
**** Example Host and URL Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Getting the hosts and urls with a pong combined&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| PONG Beacon Cache 0.1.5D Beta71.8.84.153:391599.248.214.157:2752969.60.241.55:16369193.253.239.246:3021868.156.175.121:634871.179.7.241:1834474.196.22.241:634812.210.197.194:10531222.150.143.77:1000058.85.231.135:634624.141.199.164:2020572.175.201.195:634869.81.129.228:488097.81.221.63:1321970.15.130.224:7759216.211.188.106:5190375.167.168.156:4866012.214.14.3:3591676.177.244.106:2418098.165.218.139:3963068.112.182.125:368568.117.204.57:2348265.12.154.25:4076069.180.47.169:571175.138.40.173:2498798.201.19.0:3366270.187.2.144:634868.186.209.107:1442969.159.7.61:634876.208.176.196:48199[http://gwc.frodoslair.net/skulls/skulls.php http://gwc.frodoslair.net/skulls/skulls.php][http://bbs.robertwoolley.co.uk/GWebCache/gcache.php http://bbs.robertwoolley.co.uk/GWebCache/gcache.php][http://g2.tjtech.org/g2/ http://g2.tjtech.org/g2/][http://g2.tjtech.org/g2/index.php http://g2.tjtech.org/g2/index.php][http://gwc.monnsta.net/ http://gwc.monnsta.net/][http://holograph.uni.cc/other/skulls.php http://holograph.uni.cc/other/skulls.php][http://gwc.nickstallman.net/ http://gwc.nickstallman.net/][http://gwc.eod.cc/skulls.php http://gwc.eod.cc/skulls.php][http://gwc.frodoslair.net/skulls/skulls http://gwc.frodoslair.net/skulls/skulls][http://gwc.werwin.net/skulls.php http://gwc.werwin.net/skulls.php] &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Variables&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Mandatory&#039;&#039;&#039; &lt;br /&gt;
** ping: &lt;br /&gt;
*** Response should have this always: PONG&lt;br /&gt;
*** After, put the cache&#039;s name. ex: PONG fakecache 0.01&lt;br /&gt;
** client: &lt;br /&gt;
*** Four letter code of the client. ex: RAZA &lt;br /&gt;
** version: &lt;br /&gt;
*** Version number of the client. &lt;br /&gt;
** urlfile: &lt;br /&gt;
*** Used by the client to request alternate cache urls. &lt;br /&gt;
** hostfile: &lt;br /&gt;
*** Used by the client to request IPs with port numbers attached. &lt;br /&gt;
** url: &lt;br /&gt;
*** Client update giving an alternate cache URL. &lt;br /&gt;
*** Formatted with a http:// prefix to each cache. &lt;br /&gt;
** ip: &lt;br /&gt;
*** Client update giving one&#039;s IP to submit. &lt;br /&gt;
** url1: &lt;br /&gt;
*** OLD OUTDATED Client update giving an alternate cache URL. &lt;br /&gt;
*** Formatted with a http:// prefix to each cache. &lt;br /&gt;
** ip1: &lt;br /&gt;
*** OLD OUTDATED Client update giving one&#039;s IP to submit. &lt;br /&gt;
* &#039;&#039;&#039;Optional&#039;&#039;&#039; &lt;br /&gt;
** bfile: &lt;br /&gt;
*** For clients to request both URLs and IPs from the cache at the same time. &lt;br /&gt;
** statfile: &lt;br /&gt;
*** Statistics of the cache request: &lt;br /&gt;
**** First line: Total requests of the cache number. &lt;br /&gt;
**** Second line: Requests of the cache an hour number. &lt;br /&gt;
**** Third line: Updates of the cache an hour number.&lt;br /&gt;
&lt;br /&gt;
==== Specification 2: ====&lt;br /&gt;
&#039;&#039;&#039;Networks Served&#039;&#039;&#039; &lt;br /&gt;
* Gnutella, Gnutella2, etc. &lt;br /&gt;
&#039;&#039;&#039;Format&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Information Output&#039;&#039;&#039; &lt;br /&gt;
** Starts with: I| &lt;br /&gt;
*** &#039;&#039;&#039;Categories&#039;&#039;&#039; &lt;br /&gt;
**** &#039;&#039;&#039;Pong&#039;&#039;&#039; (ping variable response) - Described below under the topic: variables. &lt;br /&gt;
**** &#039;&#039;&#039;Update Status Response&#039;&#039;&#039; &lt;br /&gt;
***** Format: I|update &lt;br /&gt;
***** &#039;&#039;&#039;Responses&#039;&#039;&#039; &lt;br /&gt;
****** I|update|OK &lt;br /&gt;
******* - Everything went fine. &lt;br /&gt;
****** I|update|OK|WARNING &lt;br /&gt;
******* Small warning. &lt;br /&gt;
****** I|update|WARNING &lt;br /&gt;
******* Severe warning &lt;br /&gt;
**** &#039;&#039;&#039;Plain Warnings&#039;&#039;&#039; &lt;br /&gt;
***** Format: I|WARNING &lt;br /&gt;
****** Append any warning messages after it - Ex: I|WARNING|You came back too early &lt;br /&gt;
**** &#039;&#039;&#039;Extra Info&#039;&#039;&#039; - Described below under the topic: variables. &lt;br /&gt;
* &#039;&#039;&#039;Host Output&#039;&#039;&#039; &lt;br /&gt;
** Starts with: H| &lt;br /&gt;
** Add the IP with its port: &lt;br /&gt;
*** Ex: H|0.0.0.0:6346 &lt;br /&gt;
** Add the time, thereafter, of the host&#039;s (In seconds*) time in cache: &lt;br /&gt;
*** Ex: H|0.0.0.0:6346|45 &lt;br /&gt;
** If cluster exists with cluster=somerandomwords &lt;br /&gt;
*** Add the clustered words after the host&#039;s age: &lt;br /&gt;
**** Ex: H|0.0.0.0:6346|45|somerandomwords &lt;br /&gt;
* &#039;&#039;&#039;URL Output&#039;&#039;&#039; &lt;br /&gt;
** Starts with: U| &lt;br /&gt;
** Add the URL with http:// before it, plus the port (if it&#039;s not 80). &lt;br /&gt;
*** Ex: U|[http://somerandomcache.com/ http://somerandomcache.com/] &lt;br /&gt;
** Add the time, thereafter, of the URL&#039;s time (In seconds*) in cache: &lt;br /&gt;
*** Ex: U|[http://somerandomcache.com/%7C45 http://somerandomcache.com/|45] &lt;br /&gt;
* &#039;&#039;&#039;Example Cache Output (Beacon Cache) For get Command&#039;&#039;&#039; &lt;br /&gt;
** Example URL: [http://grantgalitz.com/Beacon/gwc.php?get=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;net=gnutella2&amp;amp;ping=1 http://grantgalitz.com/Beacon/gwc.php?get=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;net=gnutella2&amp;amp;ping=1] &lt;br /&gt;
*** Example &amp;quot;Get&amp;quot; Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Getting the hosts and urls with a pong combined&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| I|pong|Beacon Cache 0.1.5D Beta|gnutella-gnutella2H|65.9.200.243:4968|248261H|68.228.129.75:44599|242678H|98.240.196.122:8206|240719H|76.104.12.133:14921|218273H|69.136.1.12:3924|211610H|81.154.208.71:8595|174402H|97.96.105.51:2076|153610H|74.192.153.212:39340|144203H|72.190.106.57:12584|132984H|78.93.71.132:12334|125668H|82.43.248.184:27560|97974H|196.205.224.97:6357|86763H|74.129.219.30:33172|82005H|76.104.12.133:19185|57182H|69.59.83.131:18442|38628U|[http://www.k33bz.com/g2/bazooka.php%7C248639 http://www.k33bz.com/g2/bazooka.php|248639]U|[http://gwebcache.ns1.net/%7C248592 http://gwebcache.ns1.net/|248592]U|[http://gwc2.wodi.org/skulls.php%7C248384 http://gwc2.wodi.org/skulls.php|248384]U|[http://gwc.guufshop.com/skulls/skulls.php%7C248322 http://gwc.guufshop.com/skulls/skulls.php|248322]U|[http://groovy.syxy.com/up/skulls.php%7C248300 http://groovy.syxy.com/up/skulls.php|248300]U|[http://g2.tjtech.org/g2/index.php%7C247770 http://g2.tjtech.org/g2/index.php|247770]U|[http://midian.jayl.de/g2/bazooka.php%7C240719 http://midian.jayl.de/g2/bazooka.php|240719]U|[http://www.dom2porno.info/skulls/skulls.php%7C207473 http://www.dom2porno.info/skulls/skulls.php|207473]U|[http://gwc.frodoslair.net/skulls/skulls%7C125668 http://gwc.frodoslair.net/skulls/skulls|125668]U|[http://holograph.uni.cc/other/skulls.php%7C9642 http://holograph.uni.cc/other/skulls.php|9642] &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Variables&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Mandatory&#039;&#039;&#039; &lt;br /&gt;
** ping: &lt;br /&gt;
*** Main Part: I|pong| &lt;br /&gt;
*** Then add the cache name and version: I|pong|fakecache 0.01 &lt;br /&gt;
*** Then lastly add the network support: &lt;br /&gt;
**** I|pong|fakecache 0.01|gnutella &lt;br /&gt;
***** - Gnutella only &lt;br /&gt;
**** I|pong|fakecache 0.01|gnutella2 &lt;br /&gt;
***** - Gnutella2 only &lt;br /&gt;
**** I|pong|fakecache 0.01|gnutella-gnutella2 &lt;br /&gt;
***** - Gnutella and Gnutella2 served &lt;br /&gt;
** get: &lt;br /&gt;
*** Used by clients to requests alternate cache URLs along with IPs and their port numbers. &lt;br /&gt;
** update: &lt;br /&gt;
*** url: &lt;br /&gt;
**** Client update giving an alternate cache URL. &lt;br /&gt;
**** Formatted with a http:// prefix to each cache. &lt;br /&gt;
*** ip: &lt;br /&gt;
**** Client update giving one&#039;s IP to submit. &lt;br /&gt;
** net: &lt;br /&gt;
*** Which network to serve the client. &lt;br /&gt;
**** Gnutella &lt;br /&gt;
***** Ex: net=gnutella &lt;br /&gt;
**** Gnutella2 &lt;br /&gt;
***** Ex: net=gnutella2 &lt;br /&gt;
**** &#039;&#039;&#039;Should always be lowercase&#039;&#039;&#039; &lt;br /&gt;
***** GWCs should automatically convert network name given to lowercase to prevent Net ID mismatches &lt;br /&gt;
&lt;br /&gt;
solely on case alone. &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
* &lt;br /&gt;
** client: &lt;br /&gt;
*** Four letter code of the client. ex: RAZA &lt;br /&gt;
** version: &lt;br /&gt;
*** Version number of the client. &lt;br /&gt;
* &#039;&#039;&#039;Optional&#039;&#039;&#039; &lt;br /&gt;
** cluster: &lt;br /&gt;
*** To add extra info to an IP update. &lt;br /&gt;
**** Output by cache: H|0.0.0.0|AGE OF HOST (Seconds)|clustering some bull**** &lt;br /&gt;
** statfile: &lt;br /&gt;
*** Exactly like the specification 1 statfile &#039;&#039;&#039;(Same routine and output style)&#039;&#039;&#039;. &lt;br /&gt;
*** Statistics of the cache request: &lt;br /&gt;
**** First line: Total requests of the cache number. &lt;br /&gt;
**** Second line: Requests of the cache an hour number. &lt;br /&gt;
**** Third line: Updates of the cache an hour number. &lt;br /&gt;
&lt;br /&gt;
==== Specification 2.1 ====&lt;br /&gt;
&#039;&#039;&#039;This is an extension of specification 2, not a separate specification!&#039;&#039;&#039; &lt;br /&gt;
Pong extension &lt;br /&gt;
* Append the networks supported joined by a hyphen &#039;-&#039;. &lt;br /&gt;
* Used for client-side validation of networks supported and for network support reporting to other web caches. &lt;br /&gt;
* Format: &lt;br /&gt;
** I|pong|cache name|network names joined by &#039;-&#039; &lt;br /&gt;
** Format Examples: &lt;br /&gt;
*** I|pong|fakecache 0.01|gnutella &lt;br /&gt;
**** - Gnutella only &lt;br /&gt;
*** I|pong|fakecache 0.01|gnutella2 &lt;br /&gt;
**** - Gnutella2 only &lt;br /&gt;
*** I|pong|fakecache 0.01|gnutella-gnutella2 &lt;br /&gt;
**** - Gnutella and Gnutella2 served &lt;br /&gt;
Host Output &lt;br /&gt;
* Just like specification 2, but with more fields supported for host output. &lt;br /&gt;
** H|ip:port|age in cache|clustering|leaves|4 letter vendor code|reported uptime of host|max. leaves possible &lt;br /&gt;
*** The host, age, and clustering fields are all still the same as in specification 2. &lt;br /&gt;
*** The leaf count of the hub reported is in the 5th field. &lt;br /&gt;
*** The vendor code with version number is in the 6th field. &lt;br /&gt;
Request Control Variables: &lt;br /&gt;
* getleaves &lt;br /&gt;
** Used to obtain leaf counts of hubs given &lt;br /&gt;
** 4th field ultilized for current leaf count. &lt;br /&gt;
** 7th field ultilized for maximum leaf slots possible. &lt;br /&gt;
** Use this as &#039;getleaves=1&#039; or &#039;getleaves&#039; to enable. &lt;br /&gt;
* getclusters &lt;br /&gt;
** Enables/Disables clustering. &lt;br /&gt;
** Use this as &#039;getclusters=1&#039;. &lt;br /&gt;
** Using &#039;getclusters&#039; or &#039;getclusters=0&#039; disables cluster output. &lt;br /&gt;
* getvendors &lt;br /&gt;
** Used to obtain the vendor code w/ version number of the hubs given. &lt;br /&gt;
** Found in the 5th field. &lt;br /&gt;
** Use this as &#039;getvendors=1&#039; or &#039;getvendors&#039; to enable. &lt;br /&gt;
* getuptime &lt;br /&gt;
** Used to obtain the vendor code w/ version number of the hubs given. &lt;br /&gt;
** Value is static, do not change the value given when time passes. &lt;br /&gt;
** Found in the 6th field. &lt;br /&gt;
** Use this as &#039;getuptime=1&#039; or &#039;getuptime&#039; to enable. &lt;br /&gt;
* spec &lt;br /&gt;
** To force the specification parameter &lt;br /&gt;
** Currently is only supported by Beacon Cache II &lt;br /&gt;
* pv &lt;br /&gt;
** Similar to the &#039;spec&#039; parameter, except that it does not force, instead it simply negotiates the specification. &lt;br /&gt;
Special Data Requests &lt;br /&gt;
* info &lt;br /&gt;
** Outputs extra details of your cache. &lt;br /&gt;
*** Start with the informational response: I| &lt;br /&gt;
**** Ex: I|open-source|1 &lt;br /&gt;
* support &lt;br /&gt;
** Outputs USEFUL details of your cache. &lt;br /&gt;
*** Start with the informational response: I| &lt;br /&gt;
**** Ex: I|support|gnutella2 &lt;br /&gt;
* getnetworks &lt;br /&gt;
** Outputs the enabled networks in two formats. &lt;br /&gt;
*** Start with the informational response: I| &lt;br /&gt;
**** For the &#039;I|nets|&#039; line &lt;br /&gt;
***** The third field contains the supported networks joined by &#039;-&#039;. &lt;br /&gt;
**** For the &#039;I|networks|&#039; line &lt;br /&gt;
***** Interpret the fields from 3 and beyond as individual network names to challenge against. &lt;br /&gt;
*** Examples &lt;br /&gt;
**** &lt;br /&gt;
***** I|nets|gnutella-gnutella2 &lt;br /&gt;
***** I|networks|gnutella|gnutella2 &lt;br /&gt;
Update Extension Variables: &lt;br /&gt;
* x_leaves &lt;br /&gt;
** Number of leaves running on a given hub or ultrapeer. &lt;br /&gt;
** &#039;&#039;&#039;Value must not be greater than an integer value of 2047.&#039;&#039;&#039; &lt;br /&gt;
** &#039;&#039;&#039;Note: It is important to know that PHP automaticaly replace dots with underscores, so to keep compatibility with old/new version of clients all caches should support both variants, example: x.leaves x_leaves&#039;&#039;&#039; &lt;br /&gt;
* x_max &lt;br /&gt;
** Maximum number of leaves possible on a given hub or ultrapeer. &lt;br /&gt;
** &#039;&#039;&#039;Value must not be greater than an integer value of 2047.&#039;&#039;&#039; &lt;br /&gt;
* uptime &lt;br /&gt;
** Value submitted must be an integer value of the number of seconds of uptime. &lt;br /&gt;
** &#039;&#039;&#039;Value must not be greater than an integer value of 1 year (31536000) and less than 1 hour (60).&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== Pinging Caches With Your Cache ===&lt;br /&gt;
&#039;&#039;&#039;Please follow this standard:&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Client: TEST&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Version: Your Cache&#039;s Name&#039;&#039;&#039; &lt;br /&gt;
** The old value for &amp;quot;version&amp;quot; was 1 &lt;br /&gt;
&#039;&#039;&#039;Some variables to attach to the ping (compatibility):&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;multi&#039;&#039;&#039; &lt;br /&gt;
** Used by some gwcs in their pings to other gwcs. &lt;br /&gt;
** &amp;lt;nowiki&amp;gt;It tells the pinged cache to ignore the &amp;quot;net&amp;quot; parameter (so it should never say network not supported) and outputting the pong using this format, if possible, &amp;quot;I|pong|[cache name] [cache version]|[supported networks list]&amp;quot; - example: I|pong|Skulls 0.2.9|gnutella-gnutella2 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
** Used by Skulls GWC only, supported by Skulls and Beacon Cache II. &lt;br /&gt;
* &#039;&#039;&#039;cache&#039;&#039;&#039; &lt;br /&gt;
** This is added to every request made by some gwcs, it is for statistical purposes only. &lt;br /&gt;
** It simply tells the remote cache that the client is a GWC. &lt;br /&gt;
&#039;&#039;&#039;Help&#039;&#039;&#039; &lt;br /&gt;
* For PHP &lt;br /&gt;
** Use the fsockopen() function to open a connection to a cache. &lt;br /&gt;
*** Make sure you &amp;quot;write&amp;quot; to the fsockopen carry value to open the GWC&#039;s target file. &lt;br /&gt;
**** [http://us.php.net/manual/en/function.fsockopen.php http://us.php.net/manual/en/function.fsockopen.php] &lt;br /&gt;
&lt;br /&gt;
=== Variable Combination Standards ===&lt;br /&gt;
&#039;&#039;&#039;Net variable decides specification!&#039;&#039;&#039; &lt;br /&gt;
* There are many ways to determine spec., but going with net is the safe way. &lt;br /&gt;
* Skulls GWC does not use the network parameter to determine specification level. &lt;br /&gt;
* Beacon Cache (I and II) uses the network parameter to determine the specification level. &lt;br /&gt;
&#039;&#039;&#039;Your cache needs to be able to process certain combinations of variables.&#039;&#039;&#039; &lt;br /&gt;
* Update variable &lt;br /&gt;
** Update should not fail if absent if spec. 2. &lt;br /&gt;
*** A Specification 2 parameter. &lt;br /&gt;
Spec 1 parameters used in Spec 2: &lt;br /&gt;
* Should still accept hostfile and urlfile responses for spec. 2. &lt;br /&gt;
** Beacon Cache (I and II) accepts these parameters on spec 2. &lt;br /&gt;
The &#039;spec&#039; paameter can be used to force a specification: &lt;br /&gt;
* Only known to exist in Beacon Cache II, it can force the request to be handled as a specification 1 or 2 request. &lt;br /&gt;
* Spec 1 = &#039;spec=1&#039; &lt;br /&gt;
* Spec 2 = &#039;spec=2&#039; &lt;br /&gt;
* If &#039;spec&#039; is not equal to any current spec, then default to the predetermined spec. &lt;br /&gt;
&#039;&#039;&#039;Multiple variable requests&#039;&#039;&#039; &lt;br /&gt;
* If for instance a ping and request exist, you should always handle them properly. &lt;br /&gt;
** Same goes with other combos like an update and ping, statfile + ping and info. &lt;br /&gt;
* Handle multiple variables as BEST as possible! &lt;br /&gt;
** Some scanners and GWCs like to fit all their requests into one URL send. &lt;br /&gt;
&lt;br /&gt;
=== Further Information: ===&lt;br /&gt;
* [http://www.gnucleus.com/gwebcache/ Original GWC] [http://www.gnucleus.com/gwebcache/ site] &lt;br /&gt;
** [http://gnucleus.sourceforge.net/gwebcache/specs.html GWC Spec. 1] &lt;br /&gt;
** [http://gnucleus.sourceforge.net/gwebcache/newgwc.html GWC Spec. 2] &lt;br /&gt;
&lt;br /&gt;
=== Gnutella Web Cache ===&lt;br /&gt;
Gnutella requires Gnutella Web Caches (GWC) to get IPs to establish a connection to the network.  These are critical to ensuring the health of the network.  If you have a dedicated server and can spare some extra bandwidth then please consider running a GWC.  People that don&#039;t have a dedicated server or are on normal broadband consumer lines should not run a cache from home.&lt;br /&gt;
&lt;br /&gt;
A GWC is a simple script that can be put on any webserver that supports one of the following scripting languages:&lt;br /&gt;
*JSP (Java Servlet)&lt;br /&gt;
**[http://web.archive.org/web/20061108091447/http://www.mager.org/GWebCache/ Java Servlet GWebCache Application (Archive.org)]&lt;br /&gt;
*C&lt;br /&gt;
**[http://ghostwhitecrab.com/crab/ GhostWhiteCrab]&lt;br /&gt;
*Perl &lt;br /&gt;
**[http://www.jonatkins.com/perlgcache/ Jon Atkins&#039; perlgcache] &lt;br /&gt;
**The original [http://www.gnucleus.com/gwebcache/dist/ GnuWebCache]&lt;br /&gt;
*PHP &lt;br /&gt;
**[http://gwcii.sourceforge.net/ PHPGnuCacheII] - MySQL&lt;br /&gt;
**[http://www.bazookanetworks.com Bazooka G2WC] (recommended) - flat files&lt;br /&gt;
**[http://sourceforge.net/projects/skulls/ Skulls! Multi-Network WebCache] - flat files&lt;br /&gt;
====Further Information:====&lt;br /&gt;
*[http://www.gnucleus.com/gwebcache/|Original GWC site]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{RecoveredPage|--&amp;gt;Saved in timestamp 20090421202728Retrieved from &amp;quot;[https://www.pantheraproject.net/wiki/index.php?title=GWC This page was last modified on April 18, 2009, at 23:25. &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;Copyright © 2002-2009 Shareaza Development Team. &amp;lt;/center&amp;gt;&amp;lt;center&amp;gt;[[Image:poweredby_mediawiki_88x31.png]] --[[User:Ocexyz|Ocexyz]] 16:20, 27 July 2009 (UTC)}}&lt;br /&gt;
&lt;br /&gt;
{{RecoveredPage|Warninig: here ends pasted better formatted recovery. Row recovery has been mooved below as I don&#039;t know if anybody has made any changes in it. If not then row recovery can be deleted I suppose. Paste starts from == Shareaza Specific Details == and ends at second == Shareaza Specific Details ==, here. I hope it is visible.  --[[User:Ocexyz|Ocexyz]] 16:20, 27 July 2009 (UTC)  }}&lt;br /&gt;
&lt;br /&gt;
==Shareaza Specific Details==&lt;br /&gt;
&lt;br /&gt;
{{RecoveredPage|Warninig: here ends pasted better formatted recovery. Row recovery has been mooved below as I don&#039;t know if anybody has made any changes in it. If not then row recovery can be deleted I suppose. Paste starts from &amp;gt;&amp;gt;Shareaza Specific Details&amp;lt;&amp;lt; and ends at second &amp;gt;&amp;gt; Shareaza Specific Details&amp;lt;&amp;lt;, here. I hope it is visible.  --[[User:Ocexyz|Ocexyz]] 23:27, 27 July 2009 (UTC)  }}&lt;br /&gt;
&lt;br /&gt;
* Get String Breakdown:&lt;br /&gt;
          o Update a leaf&lt;br /&gt;
                + &amp;quot;?update=1&amp;amp;ip=(ip):(port)&amp;amp;x_leaves=(leaf count) &lt;br /&gt;
          o Ping Variable&lt;br /&gt;
                + Appends &amp;amp;ping=1 to identify the cache name in debug messages (for gnutella and gnutella2 in 2.4.0.0, but only for gnutella2 now in 2.4.0.X for spec1 cache compatibility).&lt;br /&gt;
                + This feature new to Shareaza. &lt;br /&gt;
          o Network Variable&lt;br /&gt;
                + Appends &amp;amp;net=gnutella2 on Gnutella2 queries.&lt;br /&gt;
                + Does NOT append a network variable on Gnutella(1) queries. &lt;br /&gt;
          o Client Name / Version Format (2.4.0.0 and earlier):&lt;br /&gt;
                + &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) )&lt;br /&gt;
                + &amp;amp;version=(Shareaza&#039;s version) &lt;br /&gt;
          o Client Name / Version Format (2.4.0.X):&lt;br /&gt;
                + If Gnutella&lt;br /&gt;
                      # &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) )&lt;br /&gt;
                      # &amp;amp;version=(Shareaza&#039;s version) &lt;br /&gt;
                + If Gnutella2&lt;br /&gt;
                      # &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) )+(Shareaza&#039;s version) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* GWC Response Matching:&lt;br /&gt;
          o i|&lt;br /&gt;
                + Informational output alone will not be taken as GWC &#039;success.&#039; &lt;br /&gt;
          o i|access|period|(time in sec.)&lt;br /&gt;
                + Time in seconds before Shareaza is allowed to make a request to the cache. &lt;br /&gt;
          o i|update|period|(time in sec.)&lt;br /&gt;
                + Time in seconds before Shareaza is allowed to update to the cache. &lt;br /&gt;
          o i|force|remove and i|update|warning|bad url&lt;br /&gt;
                + Remove the GWC from the internal list. &lt;br /&gt;
          o Some Response Matches (added in 2.3.1.X)&lt;br /&gt;
                + i|NO-URL-NO-HOSTS&lt;br /&gt;
                      # Outputs warning of the cache being totally empty to the system log. &lt;br /&gt;
                + i|NO-URL&lt;br /&gt;
                      # Outputs warning of the cache having no alternative URLs to the system log. &lt;br /&gt;
                + i|NO-HOSTS&lt;br /&gt;
                      # Outputs warning of the cache having no hosts to the system log. &lt;br /&gt;
                + i|warning|&lt;br /&gt;
                      # Outputs warning of the cache to the system log. &lt;br /&gt;
                + ERROR Something Failed&lt;br /&gt;
                      # Outputs warning of the cache to the system log(Buggy Bazooka GWCs workaround). &lt;br /&gt;
                + i|warning|You came back too early (2.3.1.X)&lt;br /&gt;
                + i|warning|client|early (2.3.1.X)&lt;br /&gt;
                + WARNING: You came back too early (2.3.1.X)&lt;br /&gt;
                + ERROR: Client returned too early (2.3.1.X)&lt;br /&gt;
                      # Flood detection for the update side.&lt;br /&gt;
                      # Outputs GWebCache(update) Too many connection attempts to the system log. &lt;br /&gt;
                + too early (2.3.1.X)&lt;br /&gt;
                + early (2.4.0.X)&lt;br /&gt;
                      # Flood detection for the request side.&lt;br /&gt;
                      # Outputs GWebCache URL: Too many connection attempts to the system log. &lt;br /&gt;
                + i|update|OK&lt;br /&gt;
                      # Outputs &amp;quot;GWebCache(v2) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
                + OK&lt;br /&gt;
                      # Outputs &amp;quot;GWebCache(v1) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* GWC Response Matching:&lt;br /&gt;
          o i|&lt;br /&gt;
                + Informational output alone will not be taken as GWC &#039;success.&#039; &lt;br /&gt;
          o i|access|period|(time in sec.)&lt;br /&gt;
                + Time in seconds before Shareaza is allowed to make a request to the cache. &lt;br /&gt;
          o i|update|period|(time in sec.)&lt;br /&gt;
                + Time in seconds before Shareaza is allowed to update to the cache. &lt;br /&gt;
          o i|force|remove and i|update|warning|bad url&lt;br /&gt;
                + Remove the GWC from the internal list. &lt;br /&gt;
          o Some Response Matches (added in 2.3.1.X)&lt;br /&gt;
                + i|NO-URL-NO-HOSTS&lt;br /&gt;
                      # Outputs warning of the cache being totally empty to the system log. &lt;br /&gt;
                + i|NO-URL&lt;br /&gt;
                      # Outputs warning of the cache having no alternative URLs to the system log. &lt;br /&gt;
                + i|NO-HOSTS&lt;br /&gt;
                      # Outputs warning of the cache having no hosts to the system log. &lt;br /&gt;
                + i|warning|&lt;br /&gt;
                      # Outputs warning of the cache to the system log. &lt;br /&gt;
                + ERROR Something Failed&lt;br /&gt;
                      # Outputs warning of the cache to the system log(Buggy Bazooka GWCs workaround). &lt;br /&gt;
                + i|warning|You came back too early (2.3.1.X)&lt;br /&gt;
                + i|warning|client|early (2.3.1.X)&lt;br /&gt;
                + WARNING: You came back too early (2.3.1.X)&lt;br /&gt;
                + ERROR: Client returned too early (2.3.1.X)&lt;br /&gt;
                      # Flood detection for the update side.&lt;br /&gt;
                      # Outputs GWebCache(update) Too many connection attempts to the system log. &lt;br /&gt;
                + too early (2.3.1.X)&lt;br /&gt;
                + early (2.4.0.X)&lt;br /&gt;
                      # Flood detection for the request side.&lt;br /&gt;
                      # Outputs GWebCache URL: Too many connection attempts to the system log. &lt;br /&gt;
                + i|update|OK&lt;br /&gt;
                      # Outputs &amp;quot;GWebCache(v2) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
                + OK&lt;br /&gt;
                      # Outputs &amp;quot;GWebCache(v1) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Gnutella Web Cache Specifications==&lt;br /&gt;
&amp;lt;end of partial recovery by OCE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;end of recovered content&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;row recovery, start&amp;gt; &lt;br /&gt;
 Specification 1:&lt;br /&gt;
&lt;br /&gt;
    * Networks Served&lt;br /&gt;
          o Gnutella &lt;br /&gt;
    * Format&lt;br /&gt;
          o Update went fine:&lt;br /&gt;
                + Ex: OK &lt;br /&gt;
          o Update Warning (Small prob., not that bad):&lt;br /&gt;
                + Ex: &lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
WARNING: Error Message&lt;br /&gt;
&lt;br /&gt;
    * Severe Warning (No &#039;OK&#039; message sent)&lt;br /&gt;
          o Ex: &lt;br /&gt;
&lt;br /&gt;
WARNING: Error Message&lt;br /&gt;
&lt;br /&gt;
    * URL Output:&lt;br /&gt;
          o Ex: http://somefreakinrandomcache.com/cache/gcache.php&lt;br /&gt;
                + OR - WITH A PORT NUMBER (If not 80)&lt;br /&gt;
                      # Ex: http://somefreakinrandomcache.com:8080/cache/gcache.php &lt;br /&gt;
    * Host Output:&lt;br /&gt;
          o Ex: 66.132.55.12:6346 &lt;br /&gt;
    * Pong (ping variable response) - was explained below under the topic: variables.&lt;br /&gt;
    * Example Cache Output (Beacon Cache) For urlfile Command&lt;br /&gt;
          o Example &amp;quot;urlfile Output&amp;quot; URL: Ex: http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;urlfile=1&lt;br /&gt;
                + Example URL Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting urls with a pong combined&lt;br /&gt;
&lt;br /&gt;
PONG Beacon Cache 0.1.5D Beta&lt;br /&gt;
http://gwc.frodoslair.net/skulls/skulls.php&lt;br /&gt;
http://bbs.robertwoolley.co.uk/GWebCache/gcache.php&lt;br /&gt;
http://g2.tjtech.org/g2/&lt;br /&gt;
http://g2.tjtech.org/g2/index.php&lt;br /&gt;
http://gwc.monnsta.net/&lt;br /&gt;
http://holograph.uni.cc/other/skulls.php&lt;br /&gt;
http://gwc.nickstallman.net/&lt;br /&gt;
http://gwc.eod.cc/skulls.php&lt;br /&gt;
http://gwc.frodoslair.net/skulls/skulls&lt;br /&gt;
http://gwc.werwin.net/skulls.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * Example Cache Output (Beacon Cache) For hostfile Command&lt;br /&gt;
          o Example &amp;quot;hostfile Output&amp;quot; URL: Ex: http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;hostfile=1&lt;br /&gt;
                + Example Host Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting the hosts with a pong combined&lt;br /&gt;
&lt;br /&gt;
PONG Beacon Cache 0.1.5D Beta&lt;br /&gt;
71.8.84.153:3915&lt;br /&gt;
99.248.214.157:27529&lt;br /&gt;
69.60.241.55:16369&lt;br /&gt;
193.253.239.246:30218&lt;br /&gt;
68.156.175.121:6348&lt;br /&gt;
71.179.7.241:18344&lt;br /&gt;
74.196.22.241:6348&lt;br /&gt;
12.210.197.194:10531&lt;br /&gt;
222.150.143.77:10000&lt;br /&gt;
58.85.231.135:6346&lt;br /&gt;
24.141.199.164:20205&lt;br /&gt;
72.175.201.195:6348&lt;br /&gt;
69.81.129.228:4880&lt;br /&gt;
97.81.221.63:13219&lt;br /&gt;
70.15.130.224:7759&lt;br /&gt;
216.211.188.106:51903&lt;br /&gt;
75.167.168.156:48660&lt;br /&gt;
12.214.14.3:35916&lt;br /&gt;
76.177.244.106:24180&lt;br /&gt;
98.165.218.139:39630&lt;br /&gt;
68.112.182.125:3685&lt;br /&gt;
68.117.204.57:23482&lt;br /&gt;
65.12.154.25:40760&lt;br /&gt;
69.180.47.169:5711&lt;br /&gt;
75.138.40.173:24987&lt;br /&gt;
98.201.19.0:33662&lt;br /&gt;
70.187.2.144:6348&lt;br /&gt;
68.186.209.107:14429&lt;br /&gt;
69.159.7.61:6348&lt;br /&gt;
76.208.176.196:48199&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * For combining a hostfile and urlfile request:&lt;br /&gt;
          o Warning: This is non-standard.&lt;br /&gt;
          o Example Cache Output (Beacon Cache) For bfile Command&lt;br /&gt;
                + Example &amp;quot;bfile Output&amp;quot; URL: Ex: http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;bfile=1&lt;br /&gt;
                      # Example Host and URL Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting the hosts and urls with a pong combined&lt;br /&gt;
&lt;br /&gt;
PONG Beacon Cache 0.1.5D Beta&lt;br /&gt;
71.8.84.153:3915&lt;br /&gt;
99.248.214.157:27529&lt;br /&gt;
69.60.241.55:16369&lt;br /&gt;
193.253.239.246:30218&lt;br /&gt;
68.156.175.121:6348&lt;br /&gt;
71.179.7.241:18344&lt;br /&gt;
74.196.22.241:6348&lt;br /&gt;
12.210.197.194:10531&lt;br /&gt;
222.150.143.77:10000&lt;br /&gt;
58.85.231.135:6346&lt;br /&gt;
24.141.199.164:20205&lt;br /&gt;
72.175.201.195:6348&lt;br /&gt;
69.81.129.228:4880&lt;br /&gt;
97.81.221.63:13219&lt;br /&gt;
70.15.130.224:7759&lt;br /&gt;
216.211.188.106:51903&lt;br /&gt;
75.167.168.156:48660&lt;br /&gt;
12.214.14.3:35916&lt;br /&gt;
76.177.244.106:24180&lt;br /&gt;
98.165.218.139:39630&lt;br /&gt;
68.112.182.125:3685&lt;br /&gt;
68.117.204.57:23482&lt;br /&gt;
65.12.154.25:40760&lt;br /&gt;
69.180.47.169:5711&lt;br /&gt;
75.138.40.173:24987&lt;br /&gt;
98.201.19.0:33662&lt;br /&gt;
70.187.2.144:6348&lt;br /&gt;
68.186.209.107:14429&lt;br /&gt;
69.159.7.61:6348&lt;br /&gt;
76.208.176.196:48199&lt;br /&gt;
http://gwc.frodoslair.net/skulls/skulls.php&lt;br /&gt;
http://bbs.robertwoolley.co.uk/GWebCache/gcache.php&lt;br /&gt;
http://g2.tjtech.org/g2/&lt;br /&gt;
http://g2.tjtech.org/g2/index.php&lt;br /&gt;
http://gwc.monnsta.net/&lt;br /&gt;
http://holograph.uni.cc/other/skulls.php&lt;br /&gt;
http://gwc.nickstallman.net/&lt;br /&gt;
http://gwc.eod.cc/skulls.php&lt;br /&gt;
http://gwc.frodoslair.net/skulls/skulls&lt;br /&gt;
http://gwc.werwin.net/skulls.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * Variables&lt;br /&gt;
          o Mandatory&lt;br /&gt;
                + ping:&lt;br /&gt;
                      # Response should have this always: PONG&lt;br /&gt;
                      # After, put the cache&#039;s name. ex: PONG fakecache 0.01&lt;br /&gt;
                + client:&lt;br /&gt;
                      # Four letter code of the client. ex: RAZA &lt;br /&gt;
                + version:&lt;br /&gt;
                      # Version number of the client. &lt;br /&gt;
                + urlfile:&lt;br /&gt;
                      # Used by the client to request alternate cache urls. &lt;br /&gt;
                + hostfile:&lt;br /&gt;
                      # Used by the client to request IPs with port numbers attached. &lt;br /&gt;
                + url:&lt;br /&gt;
                      # Client update giving an alternate cache URL.&lt;br /&gt;
                      # Formatted with a http:// prefix to each cache. &lt;br /&gt;
                + ip:&lt;br /&gt;
                      # Client update giving one&#039;s IP to submit. &lt;br /&gt;
                + url1:&lt;br /&gt;
                      # OLD OUTDATED Client update giving an alternate cache URL.&lt;br /&gt;
                      # Formatted with a http:// prefix to each cache. &lt;br /&gt;
                + ip1:&lt;br /&gt;
                      # OLD OUTDATED Client update giving one&#039;s IP to submit. &lt;br /&gt;
          o Optional&lt;br /&gt;
                + bfile:&lt;br /&gt;
                      # For clients to request both URLs and IPs from the cache at the same time. &lt;br /&gt;
                + statfile:&lt;br /&gt;
                      # Statistics of the cache request:&lt;br /&gt;
                            * First line: Total requests of the cache number.&lt;br /&gt;
                            * Second line: Requests of the cache an hour number.&lt;br /&gt;
                            * Third line: Updates of the cache an hour number. &lt;br /&gt;
&lt;br /&gt;
Specification 2:&lt;br /&gt;
&lt;br /&gt;
    * Networks Served&lt;br /&gt;
          o Gnutella, Gnutella2, etc. &lt;br /&gt;
    * Format&lt;br /&gt;
          o Information Output&lt;br /&gt;
                + Starts with: I|&lt;br /&gt;
                      # Categories&lt;br /&gt;
                            * Pong (ping variable response) - Described below under the topic: variables.&lt;br /&gt;
                            * Update Status Response&lt;br /&gt;
                                  o Format: I|update&lt;br /&gt;
                                  o Responses&lt;br /&gt;
                                        + I|update|OK&lt;br /&gt;
                                              # - Everything went fine. &lt;br /&gt;
                                        + I|update|OK|WARNING&lt;br /&gt;
                                              # Small warning. &lt;br /&gt;
                                        + I|update|WARNING&lt;br /&gt;
                                              # Severe warning &lt;br /&gt;
                            * Plain Warnings&lt;br /&gt;
                                  o Format: I|WARNING&lt;br /&gt;
                                        + Append any warning messages after it - Ex: I|WARNING|You came back too early &lt;br /&gt;
                            * Extra Info - Described below under the topic: variables. &lt;br /&gt;
          o Host Output&lt;br /&gt;
                + Starts with: H|&lt;br /&gt;
                + Add the IP with its port:&lt;br /&gt;
                      # Ex: H|0.0.0.0:6346 &lt;br /&gt;
                + Add the time, thereafter, of the host&#039;s (In seconds*) time in cache:&lt;br /&gt;
                      # Ex: H|0.0.0.0:6346|45 &lt;br /&gt;
                + If cluster exists with cluster=somerandomwords&lt;br /&gt;
                      # Add the clustered words after the host&#039;s age:&lt;br /&gt;
                            * Ex: H|0.0.0.0:6346|45|somerandomwords &lt;br /&gt;
          o URL Output&lt;br /&gt;
                + Starts with: U|&lt;br /&gt;
                + Add the URL with http:// before it, plus the port (if it&#039;s not 80).&lt;br /&gt;
                      # Ex: U|http://somerandomcache.com/ &lt;br /&gt;
                + Add the time, thereafter, of the URL&#039;s time (In seconds*) in cache:&lt;br /&gt;
                      # Ex: U|http://somerandomcache.com/|45 &lt;br /&gt;
          o Example Cache Output (Beacon Cache) For get Command&lt;br /&gt;
                + Example URL: http://grantgalitz.com/Beacon/gwc.php?get=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;net=gnutella2&amp;amp;ping=1&lt;br /&gt;
                      # Example &amp;quot;Get&amp;quot; Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting the hosts and urls with a pong combined&lt;br /&gt;
&lt;br /&gt;
I|pong|Beacon Cache 0.1.5D Beta|gnutella-gnutella2&lt;br /&gt;
H|65.9.200.243:4968|248261&lt;br /&gt;
H|68.228.129.75:44599|242678&lt;br /&gt;
H|98.240.196.122:8206|240719&lt;br /&gt;
H|76.104.12.133:14921|218273&lt;br /&gt;
H|69.136.1.12:3924|211610&lt;br /&gt;
H|81.154.208.71:8595|174402&lt;br /&gt;
H|97.96.105.51:2076|153610&lt;br /&gt;
H|74.192.153.212:39340|144203&lt;br /&gt;
H|72.190.106.57:12584|132984&lt;br /&gt;
H|78.93.71.132:12334|125668&lt;br /&gt;
H|82.43.248.184:27560|97974&lt;br /&gt;
H|196.205.224.97:6357|86763&lt;br /&gt;
H|74.129.219.30:33172|82005&lt;br /&gt;
H|76.104.12.133:19185|57182&lt;br /&gt;
H|69.59.83.131:18442|38628&lt;br /&gt;
U|http://www.k33bz.com/g2/bazooka.php|248639&lt;br /&gt;
U|http://gwebcache.ns1.net/|248592&lt;br /&gt;
U|http://gwc2.wodi.org/skulls.php|248384&lt;br /&gt;
U|http://gwc.guufshop.com/skulls/skulls.php|248322&lt;br /&gt;
U|http://groovy.syxy.com/up/skulls.php|248300&lt;br /&gt;
U|http://g2.tjtech.org/g2/index.php|247770&lt;br /&gt;
U|http://midian.jayl.de/g2/bazooka.php|240719&lt;br /&gt;
U|http://www.dom2porno.info/skulls/skulls.php|207473&lt;br /&gt;
U|http://gwc.frodoslair.net/skulls/skulls|125668&lt;br /&gt;
U|http://holograph.uni.cc/other/skulls.php|9642&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * Variables&lt;br /&gt;
          o Mandatory&lt;br /&gt;
                + ping:&lt;br /&gt;
                      # Main Part: I|pong|&lt;br /&gt;
                      # Then add the cache name and version: I|pong|fakecache 0.01&lt;br /&gt;
                      # Then lastly add the network support:&lt;br /&gt;
                            * I|pong|fakecache 0.01|gnutella&lt;br /&gt;
                                  o - Gnutella only &lt;br /&gt;
                            * I|pong|fakecache 0.01|gnutella2&lt;br /&gt;
                                  o - Gnutella2 only &lt;br /&gt;
                            * I|pong|fakecache 0.01|gnutella-gnutella2&lt;br /&gt;
                                  o - Gnutella and Gnutella2 served &lt;br /&gt;
                + get:&lt;br /&gt;
                      # Used by clients to requests alternate cache URLs along with IPs and their port numbers. &lt;br /&gt;
                + update:&lt;br /&gt;
                      # url:&lt;br /&gt;
                            * Client update giving an alternate cache URL.&lt;br /&gt;
                            * Formatted with a http:// prefix to each cache. &lt;br /&gt;
                      # ip:&lt;br /&gt;
                            * Client update giving one&#039;s IP to submit. &lt;br /&gt;
                + net:&lt;br /&gt;
                      # Which network to serve the client.&lt;br /&gt;
                            * Gnutella&lt;br /&gt;
                                  o Ex: net=gnutella &lt;br /&gt;
                            * Gnutella2&lt;br /&gt;
                                  o Ex: net=gnutella2 &lt;br /&gt;
                            * Should always be lowercase&lt;br /&gt;
                                  o GWCs should automatically convert network name given to lowercase to prevent Net ID mismatches &lt;br /&gt;
&lt;br /&gt;
solely on case alone.&lt;br /&gt;
&lt;br /&gt;
    *&lt;br /&gt;
          o&lt;br /&gt;
                + client:&lt;br /&gt;
                      # Four letter code of the client. ex: RAZA &lt;br /&gt;
                + version:&lt;br /&gt;
                      # Version number of the client. &lt;br /&gt;
          o Optional&lt;br /&gt;
                + cluster:&lt;br /&gt;
                      # To add extra info to an IP update.&lt;br /&gt;
                            * Output by cache: H|0.0.0.0|AGE OF HOST (Seconds)|clustering some bull**** &lt;br /&gt;
                + statfile:&lt;br /&gt;
                      # Exactly like the specification 1 statfile (Same routine and output style).&lt;br /&gt;
                      # Statistics of the cache request:&lt;br /&gt;
                            * First line: Total requests of the cache number.&lt;br /&gt;
                            * Second line: Requests of the cache an hour number.&lt;br /&gt;
                            * Third line: Updates of the cache an hour number. &lt;br /&gt;
&lt;br /&gt;
Specification 2.1&lt;br /&gt;
&lt;br /&gt;
    * This is an extension of specification 2, not a separate specification!&lt;br /&gt;
    * Pong extension&lt;br /&gt;
          o Append the networks supported joined by a hyphen &#039;-&#039;.&lt;br /&gt;
          o Used for client-side validation of networks supported and for network support reporting to other web caches.&lt;br /&gt;
          o Format:&lt;br /&gt;
                + I|pong|cache name|network names joined by &#039;-&#039;&lt;br /&gt;
                + Format Examples:&lt;br /&gt;
                      # I|pong|fakecache 0.01|gnutella&lt;br /&gt;
                            * - Gnutella only &lt;br /&gt;
                      # I|pong|fakecache 0.01|gnutella2&lt;br /&gt;
                            * - Gnutella2 only &lt;br /&gt;
                      # I|pong|fakecache 0.01|gnutella-gnutella2&lt;br /&gt;
                            * - Gnutella and Gnutella2 served &lt;br /&gt;
    * Host Output&lt;br /&gt;
          o Just like specification 2, but with more fields supported for host output.&lt;br /&gt;
                + H|ip:port|age in cache|clustering|leaves|4 letter vendor code|reported uptime of host|max. leaves possible&lt;br /&gt;
                      # The host, age, and clustering fields are all still the same as in specification 2.&lt;br /&gt;
                      # The leaf count of the hub reported is in the 5th field.&lt;br /&gt;
                      # The vendor code with version number is in the 6th field. &lt;br /&gt;
    * Request Control Variables:&lt;br /&gt;
          o getleaves&lt;br /&gt;
                + Used to obtain leaf counts of hubs given&lt;br /&gt;
                + 4th field ultilized for current leaf count.&lt;br /&gt;
                + 7th field ultilized for maximum leaf slots possible.&lt;br /&gt;
                + Use this as &#039;getleaves=1&#039; or &#039;getleaves&#039; to enable. &lt;br /&gt;
          o getclusters&lt;br /&gt;
                + Enables/Disables clustering.&lt;br /&gt;
                + Use this as &#039;getclusters=1&#039;.&lt;br /&gt;
                + Using &#039;getclusters&#039; or &#039;getclusters=0&#039; disables cluster output. &lt;br /&gt;
          o getvendors&lt;br /&gt;
                + Used to obtain the vendor code w/ version number of the hubs given.&lt;br /&gt;
                + Found in the 5th field.&lt;br /&gt;
                + Use this as &#039;getvendors=1&#039; or &#039;getvendors&#039; to enable. &lt;br /&gt;
          o getuptime&lt;br /&gt;
                + Used to obtain the vendor code w/ version number of the hubs given.&lt;br /&gt;
                + Value is static, do not change the value given when time passes.&lt;br /&gt;
                + Found in the 6th field.&lt;br /&gt;
                + Use this as &#039;getuptime=1&#039; or &#039;getuptime&#039; to enable. &lt;br /&gt;
          o spec&lt;br /&gt;
                + To force the specification parameter&lt;br /&gt;
                + Currently is only supported by Beacon Cache II &lt;br /&gt;
          o pv&lt;br /&gt;
                + Similar to the &#039;spec&#039; parameter, except that it does not force, instead it simply negotiates the specification. &lt;br /&gt;
    * Special Data Requests&lt;br /&gt;
          o info&lt;br /&gt;
                + Outputs extra details of your cache.&lt;br /&gt;
                      # Start with the informational response: I|&lt;br /&gt;
                            * Ex: I|open-source|1 &lt;br /&gt;
          o support&lt;br /&gt;
                + Outputs USEFUL details of your cache.&lt;br /&gt;
                      # Start with the informational response: I|&lt;br /&gt;
                            * Ex: I|support|gnutella2 &lt;br /&gt;
          o getnetworks&lt;br /&gt;
                + Outputs the enabled networks in two formats.&lt;br /&gt;
                      # Start with the informational response: I|&lt;br /&gt;
                            * For the &#039;I|nets|&#039; line&lt;br /&gt;
                                  o The third field contains the supported networks joined by &#039;-&#039;. &lt;br /&gt;
                            * For the &#039;I|networks|&#039; line&lt;br /&gt;
                                  o Interpret the fields from 3 and beyond as individual network names to challenge against. &lt;br /&gt;
                      # Examples&lt;br /&gt;
                            *&lt;br /&gt;
                                  o I|nets|gnutella-gnutella2&lt;br /&gt;
                                  o I|networks|gnutella|gnutella2 &lt;br /&gt;
    * Update Extension Variables:&lt;br /&gt;
          o x_leaves&lt;br /&gt;
                + Number of leaves running on a given hub or ultrapeer.&lt;br /&gt;
                + Value must not be greater than an integer value of 2047.&lt;br /&gt;
                + Note: It is important to know that PHP automaticaly replace dots with underscores, so to keep compatibility with old/new version of clients all caches should support both variants, example: x.leaves x_leaves&lt;br /&gt;
          o x_max&lt;br /&gt;
                + Maximum number of leaves possible on a given hub or ultrapeer.&lt;br /&gt;
                + Value must not be greater than an integer value of 2047. &lt;br /&gt;
          o uptime&lt;br /&gt;
                + Value submitted must be an integer value of the number of seconds of uptime.&lt;br /&gt;
                + Value must not be greater than an integer value of 1 year (31536000) and less than 1 hour (60). &lt;br /&gt;
&lt;br /&gt;
Pinging Caches With Your Cache&lt;br /&gt;
&lt;br /&gt;
    * Please follow this standard:&lt;br /&gt;
          o Client: TEST&lt;br /&gt;
          o Version: Your Cache&#039;s Name&lt;br /&gt;
                + The old value for &amp;quot;version&amp;quot; was 1 &lt;br /&gt;
    * Some variables to attach to the ping (compatibility):&lt;br /&gt;
          o multi&lt;br /&gt;
                + Used by some gwcs in their pings to other gwcs.&lt;br /&gt;
                + It tells the pinged cache to ignore the &amp;quot;net&amp;quot; parameter (so it should never say network not supported) and outputting the pong using this format, if possible, &amp;quot;I|pong|[cache name] [cache version]|[supported networks list]|[url adding is enabled]&amp;quot; - example: I|pong|Skulls 0.2.8a|gnutella-gnutella2|1&lt;br /&gt;
                + Used by Skulls GWC only, supported by Skulls and Beacon Cache II. &lt;br /&gt;
          o cache&lt;br /&gt;
                + This is added to every request made by some gwcs, it is for statistical purposes only.&lt;br /&gt;
                + It simply tells the remote cache that the client is a GWC. &lt;br /&gt;
    * Help&lt;br /&gt;
          o For PHP&lt;br /&gt;
                + Use the fsockopen() function to open a connection to a cache.&lt;br /&gt;
                      # Make sure you &amp;quot;write&amp;quot; to the fsockopen carry value to open the GWC&#039;s target file.&lt;br /&gt;
                            * http://us.php.net/manual/en/function.fsockopen.php &lt;br /&gt;
&lt;br /&gt;
Variable Combination Standards&lt;br /&gt;
&lt;br /&gt;
    * Net variable decides specification!&lt;br /&gt;
          o There are many ways to determine spec., but going with net is the safe way.&lt;br /&gt;
          o Skulls GWC does not use the network parameter to determine specification level.&lt;br /&gt;
          o Beacon Cache (I and II) uses the network parameter to determine the specification level. &lt;br /&gt;
    * Your cache needs to be able to process certain combinations of variables.&lt;br /&gt;
          o Update variable&lt;br /&gt;
                + Update should not fail if absent if spec. 2.&lt;br /&gt;
                      # A Specification 2 parameter. &lt;br /&gt;
    * Spec 1 parameters used in Spec 2:&lt;br /&gt;
          o Should still accept hostfile and urlfile responses for spec. 2.&lt;br /&gt;
                + Beacon Cache (I and II) accepts these parameters on spec 2. &lt;br /&gt;
    * The &#039;spec&#039; paameter can be used to force a specification:&lt;br /&gt;
          o Only known to exist in Beacon Cache II, it can force the request to be handled as a specification 1 or 2 request.&lt;br /&gt;
          o Spec 1 = &#039;spec=1&#039;&lt;br /&gt;
          o Spec 2 = &#039;spec=2&#039;&lt;br /&gt;
          o If &#039;spec&#039; is not equal to any current spec, then default to the predetermined spec. &lt;br /&gt;
    * Multiple variable requests&lt;br /&gt;
          o If for instance a ping and request exist, you should always handle them properly.&lt;br /&gt;
                + Same goes with other combos like an update and ping, statfile + ping and info. &lt;br /&gt;
          o Handle multiple variables as BEST as possible!&lt;br /&gt;
                + Some scanners and GWCs like to fit all their requests into one URL send. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;row recovery, end&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Further Information:&lt;br /&gt;
&lt;br /&gt;
* [http://www.gnucleus.com/gwebcache/ Original GWC site]&lt;br /&gt;
** [http://gnucleus.sourceforge.net/gwebcache/specs.html GWC Spec. 1]&lt;br /&gt;
** [http://gnucleus.sourceforge.net/gwebcache/newgwc.html GWC Spec. 2] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;content recovered from last aviable backup&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Gnutella Web Cache===&lt;br /&gt;
Gnutella requires Gnutella Web Caches (GWC) to get IPs to establish a connection to the network.  These are critical to ensuring the health of the network.  If you have a dedicated server and can spare some extra bandwidth then please consider running a GWC.  People that don&#039;t have a dedicated server or are on normal broadband consumer lines should not run a cache from home.&lt;br /&gt;
&lt;br /&gt;
A GWC is a simple script that can be put on any webserver that supports one of the following scripting languages:&lt;br /&gt;
*JSP (Java Servlet)&lt;br /&gt;
**[http://web.archive.org/web/20061108091447/http://www.mager.org/GWebCache/ Java Servlet GWebCache Application (Archive.org)]&lt;br /&gt;
*C&lt;br /&gt;
**[http://ghostwhitecrab.com/crab/ GhostWhiteCrab]&lt;br /&gt;
*Perl &lt;br /&gt;
**[http://www.jonatkins.com/perlgcache/ Jon Atkins&#039; perlgcache] &lt;br /&gt;
**The original [http://www.gnucleus.com/gwebcache/dist/ GnuWebCache]&lt;br /&gt;
*PHP &lt;br /&gt;
**[http://gwcii.sourceforge.net/ PHPGnuCacheII] - MySQL&lt;br /&gt;
**[http://www.bazookanetworks.com Bazooka G2WC] (recommended) - flat files&lt;br /&gt;
**[http://sourceforge.net/projects/skulls/ Skulls! Multi-Network WebCache] - flat files&lt;br /&gt;
=== Further Information: ===&lt;br /&gt;
* [http://www.gnucleus.com/gwebcache/ Original GWC site]&lt;br /&gt;
&lt;br /&gt;
[[Category:External Links]]&lt;/div&gt;</summary>
		<author><name>Ale5000</name></author>
	</entry>
	<entry>
		<id>https://shareaza.sourceforge.net/w/index.php?title=GWC_specs&amp;diff=11509</id>
		<title>GWC specs</title>
		<link rel="alternate" type="text/html" href="https://shareaza.sourceforge.net/w/index.php?title=GWC_specs&amp;diff=11509"/>
		<updated>2015-04-01T23:28:32Z</updated>

		<summary type="html">&lt;p&gt;Ale5000: Fixed GhostWhiteCrab link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;For general information on GWCs, have a look at the [[GWC]] Wiki page.&#039;&#039;&lt;br /&gt;
{{do not translate}}&lt;br /&gt;
This page is thought to give an overview over the GWC specifications as they are implemented into Shareaza.&lt;br /&gt;
&lt;br /&gt;
A GWC is a simple script that can be put on any webserver that supports one of the following scripting languages: &lt;br /&gt;
&lt;br /&gt;
* JSP (Java Servlet) &lt;br /&gt;
** [http://www1.mager.org/GWebCache/ Jums Web Cache] (Excellent for heavy loads) &lt;br /&gt;
* C &lt;br /&gt;
** [http://sourceforge.net/projects/frostwire/files/GhostWhiteCrab/ GhostWhiteCrab] (For dedicated server environments and people who know how to compile C source code!) &lt;br /&gt;
* ASP &lt;br /&gt;
** [http://www.edazzle.net/downloads/gerry.zip Gerry GWC] &lt;br /&gt;
** [https://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=7846&amp;amp;lngWId=4 Lynn (v.s. 0.5)] &lt;br /&gt;
** [https://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=7731&amp;amp;lngWId=4 Lynn (v.s. 0.4)] &lt;br /&gt;
** [http://www.poundwebhosting.com/cgi-bin/lynnx.asp LynnX] &lt;br /&gt;
* Perl &lt;br /&gt;
** [http://www.jonatkins.com/perlgcache/ Jon Atkins&#039; perlgcache] &lt;br /&gt;
** The original [http://www.gnucleus.com/gwebcache/dist/ GnuWebCache] &lt;br /&gt;
* &#039;&#039;&#039;PHP&#039;&#039;&#039; &#039;&#039;(Tip: PHP GWCs are usually the easiest to run and setup on a server.)&#039;&#039;&lt;br /&gt;
** [http://gwcii.sourceforge.net/ PHPGnuCacheII] &lt;br /&gt;
** Bazooka G2WC&lt;br /&gt;
** [http://sourceforge.net/projects/skulls/ Skulls! Multi-Network WebCache] &lt;br /&gt;
** [http://sourceforge.net/projects/beaconcache/ Beacon Cache] &lt;br /&gt;
** [http://code.google.com/p/cachechu/ Cachechu G2WC] &lt;br /&gt;
** The original [http://www.gnucleus.com/gwebcache/dist/ GnuWebCache] &#039;&#039;(PHP version is no longer supported)&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
== Breakdown Of The Gnutella Web Caches: == &lt;br /&gt;
{{RecoveredPage|I recently put this into a table. The contents need to be verified -- [[User:Cyko 01|Cyko 01]]}}&lt;br /&gt;
&lt;br /&gt;
{| width= auto; style=&amp;quot;font-size: 85%; text-align: center;text-valign: middle;&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Cache:&lt;br /&gt;
! rowspan=1 |Gnutella:&lt;br /&gt;
! rowspan=1 |Gnutella2:&lt;br /&gt;
! rowspan=1 |Spec 1:&lt;br /&gt;
! rowspan=1 |Spec 2:&lt;br /&gt;
! rowspan=1 |Flat-File:&lt;br /&gt;
! rowspan=1 |SQL:&lt;br /&gt;
! rowspan=1 |Installer:&lt;br /&gt;
! rowspan=1 |Other Networks:&lt;br /&gt;
! rowspan=1 |Different network instances:&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Beacon Cache (Core 2)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|style=&amp;quot;background: #CCFFCC;&amp;quot;| Yes (As of 0.2.0 Alpha)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Beacon Cache (Core 1)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Skulls&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|JumsWebCache&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|GnuWebCache (Perl)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|GnuWebCache (PHP) &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|GhostWhiteCrab(GWC) &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|style=&amp;quot;background: #FFFFCC;&amp;quot;| N/A&lt;br /&gt;
|style=&amp;quot;background: #FFFFCC;&amp;quot;| N/A&lt;br /&gt;
|style=&amp;quot;background: #FFFFCC;&amp;quot;| N/A&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|PHPGnuCacheII &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Bazooka &lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Cachechu&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Perlgcache&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Gerry GWC (v2)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Gerry GWC (v1)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Lynn&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|LynnX&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Shareaza Specific Details == &lt;br /&gt;
&lt;br /&gt;
{{RecoveredPage|Warninig: here I have pasted better formatted recovery, but not verified. Row recovery has been mooved below as I don&#039;t know if anybody has made any changes in it. If not then row recovery can be deleted. Paste starts from &amp;gt;&amp;gt;Shareaza Specific Details&amp;lt;&amp;lt;, here, and ends at second &amp;gt;&amp;gt;Shareaza Specific Details&amp;lt;&amp;lt; I hope it is visible.  --[[User:Ocexyz|Ocexyz]] 23:27, 27 July 2009 (UTC)}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Get String Breakdown:&#039;&#039;&#039; &lt;br /&gt;
* Update a leaf &lt;br /&gt;
** &amp;quot;?update=1&amp;amp;ip=(ip):(port)&amp;amp;x_leaves=(leaf count) &lt;br /&gt;
* Ping Variable &lt;br /&gt;
** Appends &amp;amp;ping=1 to identify the cache name in debug messages (for gnutella and gnutella2 in 2.4.0.0, but only for gnutella2 now in 2.4.0.X for spec1 cache compatibility). &lt;br /&gt;
** This feature new to Shareaza. &lt;br /&gt;
* Network Variable &lt;br /&gt;
** Appends &amp;amp;net=gnutella2 on Gnutella2 queries. &lt;br /&gt;
** Does NOT append a network variable on Gnutella(1) queries. &lt;br /&gt;
* Client Name / Version Format (2.4.0.0 and earlier): &lt;br /&gt;
** &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) ) &lt;br /&gt;
** &amp;amp;version=(Shareaza&#039;s version) &lt;br /&gt;
* Client Name / Version Format (2.4.0.X): &lt;br /&gt;
** If Gnutella &lt;br /&gt;
*** &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) ) &lt;br /&gt;
*** &amp;amp;version=(Shareaza&#039;s version) &lt;br /&gt;
** If Gnutella2 &lt;br /&gt;
*** &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) )+(Shareaza&#039;s version) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GWC Response Matching:&#039;&#039;&#039; &lt;br /&gt;
* i| &lt;br /&gt;
** Informational output alone will not be taken as GWC &#039;success.&#039; &lt;br /&gt;
* i|access|period|(time in sec.) &lt;br /&gt;
** Time in seconds before Shareaza is allowed to make a request to the cache. &lt;br /&gt;
* i|update|period|(time in sec.) &lt;br /&gt;
** Time in seconds before Shareaza is allowed to update to the cache. &lt;br /&gt;
* i|force|remove and i|update|warning|bad url &lt;br /&gt;
** Remove the GWC from the internal list. &lt;br /&gt;
* Some Response Matches (added in 2.3.1.X) &lt;br /&gt;
** i|NO-URL-NO-HOSTS &lt;br /&gt;
*** Outputs warning of the cache being totally empty to the system log. &lt;br /&gt;
** i|NO-URL &lt;br /&gt;
*** Outputs warning of the cache having no alternative URLs to the system log. &lt;br /&gt;
** i|NO-HOSTS &lt;br /&gt;
*** Outputs warning of the cache having no hosts to the system log. &lt;br /&gt;
** i|warning| &lt;br /&gt;
*** Outputs warning of the cache to the system log. &lt;br /&gt;
** ERROR Something Failed &lt;br /&gt;
*** Outputs warning of the cache to the system log(Buggy Bazooka GWCs workaround). &lt;br /&gt;
** i|warning|You came back too early (2.3.1.X) &lt;br /&gt;
** i|warning|client|early (2.3.1.X) &lt;br /&gt;
** WARNING: You came back too early (2.3.1.X) &lt;br /&gt;
** ERROR: Client returned too early (2.3.1.X) &lt;br /&gt;
*** Flood detection for the update side. &lt;br /&gt;
*** Outputs GWebCache(update) Too many connection attempts to the system log. &lt;br /&gt;
** too early (2.3.1.X) &lt;br /&gt;
** early (2.4.0.X) &lt;br /&gt;
*** Flood detection for the request side. &lt;br /&gt;
*** Outputs GWebCache URL: Too many connection attempts to the system log. &lt;br /&gt;
** i|update|OK &lt;br /&gt;
*** Outputs &amp;quot;GWebCache(v2) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
** OK &lt;br /&gt;
*** Outputs &amp;quot;GWebCache(v1) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
&lt;br /&gt;
== Gnutella Web Cache Specifications ==&lt;br /&gt;
==== Specification 1: ====&lt;br /&gt;
* &#039;&#039;&#039;Networks Served&#039;&#039;&#039; &lt;br /&gt;
** Gnutella &lt;br /&gt;
* &#039;&#039;&#039;Format&#039;&#039;&#039; &lt;br /&gt;
** Update went fine: &lt;br /&gt;
*** Ex: OK &lt;br /&gt;
** Update Warning (Small prob., not that bad): &lt;br /&gt;
*** Ex: OKWARNING: Error Message &lt;br /&gt;
&lt;br /&gt;
* Severe Warning (No &#039;OK&#039; message sent) &lt;br /&gt;
** Ex: WARNING: Error Message&lt;br /&gt;
&lt;br /&gt;
* URL Output: &lt;br /&gt;
** Ex: [http://somefreakinrandomcache.com/cache/gcache.php http://somefreakinrandomcache.com/cache/gcache.php] &lt;br /&gt;
*** OR - WITH A PORT NUMBER (If not 80) &lt;br /&gt;
**** Ex: [http://somefreakinrandomcache.com:8080/cache/gcache.php http://somefreakinrandomcache.com:8080/cache/gcache.php] &lt;br /&gt;
* Host Output: &lt;br /&gt;
** Ex: 66.132.55.12:6346 &lt;br /&gt;
* Pong (ping variable response) - was explained below under the topic: variables. &lt;br /&gt;
* &#039;&#039;&#039;Example Cache Output (Beacon Cache) For urlfile Command&#039;&#039;&#039; &lt;br /&gt;
** Example &amp;quot;urlfile Output&amp;quot; URL: Ex: [http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;urlfile=1 http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;urlfile=1] &lt;br /&gt;
*** Example URL Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Getting urls with a pong combined&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| PONG Beacon Cache 0.1.5D Beta[http://gwc.frodoslair.net/skulls/skulls.php http://gwc.frodoslair.net/skulls/skulls.php][http://bbs.robertwoolley.co.uk/GWebCache/gcache.php http://bbs.robertwoolley.co.uk/GWebCache/gcache.php][http://g2.tjtech.org/g2/ http://g2.tjtech.org/g2/][http://g2.tjtech.org/g2/index.php http://g2.tjtech.org/g2/index.php][http://gwc.monnsta.net/ http://gwc.monnsta.net/][http://holograph.uni.cc/other/skulls.php http://holograph.uni.cc/other/skulls.php][http://gwc.nickstallman.net/ http://gwc.nickstallman.net/][http://gwc.eod.cc/skulls.php http://gwc.eod.cc/skulls.php][http://gwc.frodoslair.net/skulls/skulls http://gwc.frodoslair.net/skulls/skulls][http://gwc.werwin.net/skulls.php http://gwc.werwin.net/skulls.php] &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
* &#039;&#039;&#039;Example Cache Output (Beacon Cache) For hostfile Command&#039;&#039;&#039; &lt;br /&gt;
** Example &amp;quot;hostfile Output&amp;quot; URL: Ex: [http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;hostfile=1 http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;hostfile=1] &lt;br /&gt;
*** Example Host Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Getting the hosts with a pong combined&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| PONG Beacon Cache 0.1.5D Beta71.8.84.153:391599.248.214.157:2752969.60.241.55:16369193.253.239.246:3021868.156.175.121:634871.179.7.241:1834474.196.22.241:634812.210.197.194:10531222.150.143.77:1000058.85.231.135:634624.141.199.164:2020572.175.201.195:634869.81.129.228:488097.81.221.63:1321970.15.130.224:7759216.211.188.106:5190375.167.168.156:4866012.214.14.3:3591676.177.244.106:2418098.165.218.139:3963068.112.182.125:368568.117.204.57:2348265.12.154.25:4076069.180.47.169:571175.138.40.173:2498798.201.19.0:3366270.187.2.144:634868.186.209.107:1442969.159.7.61:634876.208.176.196:48199&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
* &#039;&#039;&#039;For combining a hostfile and urlfile request:&#039;&#039;&#039; &lt;br /&gt;
** Warning: This is non-standard. &lt;br /&gt;
** &#039;&#039;&#039;Example Cache Output (Beacon Cache) For bfile Command&#039;&#039;&#039; &lt;br /&gt;
*** Example &amp;quot;bfile Output&amp;quot; URL: Ex: [http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;bfile=1 http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;bfile=1] &lt;br /&gt;
**** Example Host and URL Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Getting the hosts and urls with a pong combined&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| PONG Beacon Cache 0.1.5D Beta71.8.84.153:391599.248.214.157:2752969.60.241.55:16369193.253.239.246:3021868.156.175.121:634871.179.7.241:1834474.196.22.241:634812.210.197.194:10531222.150.143.77:1000058.85.231.135:634624.141.199.164:2020572.175.201.195:634869.81.129.228:488097.81.221.63:1321970.15.130.224:7759216.211.188.106:5190375.167.168.156:4866012.214.14.3:3591676.177.244.106:2418098.165.218.139:3963068.112.182.125:368568.117.204.57:2348265.12.154.25:4076069.180.47.169:571175.138.40.173:2498798.201.19.0:3366270.187.2.144:634868.186.209.107:1442969.159.7.61:634876.208.176.196:48199[http://gwc.frodoslair.net/skulls/skulls.php http://gwc.frodoslair.net/skulls/skulls.php][http://bbs.robertwoolley.co.uk/GWebCache/gcache.php http://bbs.robertwoolley.co.uk/GWebCache/gcache.php][http://g2.tjtech.org/g2/ http://g2.tjtech.org/g2/][http://g2.tjtech.org/g2/index.php http://g2.tjtech.org/g2/index.php][http://gwc.monnsta.net/ http://gwc.monnsta.net/][http://holograph.uni.cc/other/skulls.php http://holograph.uni.cc/other/skulls.php][http://gwc.nickstallman.net/ http://gwc.nickstallman.net/][http://gwc.eod.cc/skulls.php http://gwc.eod.cc/skulls.php][http://gwc.frodoslair.net/skulls/skulls http://gwc.frodoslair.net/skulls/skulls][http://gwc.werwin.net/skulls.php http://gwc.werwin.net/skulls.php] &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Variables&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Mandatory&#039;&#039;&#039; &lt;br /&gt;
** ping: &lt;br /&gt;
*** Response should have this always: PONG&lt;br /&gt;
*** After, put the cache&#039;s name. ex: PONG fakecache 0.01&lt;br /&gt;
** client: &lt;br /&gt;
*** Four letter code of the client. ex: RAZA &lt;br /&gt;
** version: &lt;br /&gt;
*** Version number of the client. &lt;br /&gt;
** urlfile: &lt;br /&gt;
*** Used by the client to request alternate cache urls. &lt;br /&gt;
** hostfile: &lt;br /&gt;
*** Used by the client to request IPs with port numbers attached. &lt;br /&gt;
** url: &lt;br /&gt;
*** Client update giving an alternate cache URL. &lt;br /&gt;
*** Formatted with a http:// prefix to each cache. &lt;br /&gt;
** ip: &lt;br /&gt;
*** Client update giving one&#039;s IP to submit. &lt;br /&gt;
** url1: &lt;br /&gt;
*** OLD OUTDATED Client update giving an alternate cache URL. &lt;br /&gt;
*** Formatted with a http:// prefix to each cache. &lt;br /&gt;
** ip1: &lt;br /&gt;
*** OLD OUTDATED Client update giving one&#039;s IP to submit. &lt;br /&gt;
* &#039;&#039;&#039;Optional&#039;&#039;&#039; &lt;br /&gt;
** bfile: &lt;br /&gt;
*** For clients to request both URLs and IPs from the cache at the same time. &lt;br /&gt;
** statfile: &lt;br /&gt;
*** Statistics of the cache request: &lt;br /&gt;
**** First line: Total requests of the cache number. &lt;br /&gt;
**** Second line: Requests of the cache an hour number. &lt;br /&gt;
**** Third line: Updates of the cache an hour number.&lt;br /&gt;
&lt;br /&gt;
==== Specification 2: ====&lt;br /&gt;
&#039;&#039;&#039;Networks Served&#039;&#039;&#039; &lt;br /&gt;
* Gnutella, Gnutella2, etc. &lt;br /&gt;
&#039;&#039;&#039;Format&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Information Output&#039;&#039;&#039; &lt;br /&gt;
** Starts with: I| &lt;br /&gt;
*** &#039;&#039;&#039;Categories&#039;&#039;&#039; &lt;br /&gt;
**** &#039;&#039;&#039;Pong&#039;&#039;&#039; (ping variable response) - Described below under the topic: variables. &lt;br /&gt;
**** &#039;&#039;&#039;Update Status Response&#039;&#039;&#039; &lt;br /&gt;
***** Format: I|update &lt;br /&gt;
***** &#039;&#039;&#039;Responses&#039;&#039;&#039; &lt;br /&gt;
****** I|update|OK &lt;br /&gt;
******* - Everything went fine. &lt;br /&gt;
****** I|update|OK|WARNING &lt;br /&gt;
******* Small warning. &lt;br /&gt;
****** I|update|WARNING &lt;br /&gt;
******* Severe warning &lt;br /&gt;
**** &#039;&#039;&#039;Plain Warnings&#039;&#039;&#039; &lt;br /&gt;
***** Format: I|WARNING &lt;br /&gt;
****** Append any warning messages after it - Ex: I|WARNING|You came back too early &lt;br /&gt;
**** &#039;&#039;&#039;Extra Info&#039;&#039;&#039; - Described below under the topic: variables. &lt;br /&gt;
* &#039;&#039;&#039;Host Output&#039;&#039;&#039; &lt;br /&gt;
** Starts with: H| &lt;br /&gt;
** Add the IP with its port: &lt;br /&gt;
*** Ex: H|0.0.0.0:6346 &lt;br /&gt;
** Add the time, thereafter, of the host&#039;s (In seconds*) time in cache: &lt;br /&gt;
*** Ex: H|0.0.0.0:6346|45 &lt;br /&gt;
** If cluster exists with cluster=somerandomwords &lt;br /&gt;
*** Add the clustered words after the host&#039;s age: &lt;br /&gt;
**** Ex: H|0.0.0.0:6346|45|somerandomwords &lt;br /&gt;
* &#039;&#039;&#039;URL Output&#039;&#039;&#039; &lt;br /&gt;
** Starts with: U| &lt;br /&gt;
** Add the URL with http:// before it, plus the port (if it&#039;s not 80). &lt;br /&gt;
*** Ex: U|[http://somerandomcache.com/ http://somerandomcache.com/] &lt;br /&gt;
** Add the time, thereafter, of the URL&#039;s time (In seconds*) in cache: &lt;br /&gt;
*** Ex: U|[http://somerandomcache.com/%7C45 http://somerandomcache.com/|45] &lt;br /&gt;
* &#039;&#039;&#039;Example Cache Output (Beacon Cache) For get Command&#039;&#039;&#039; &lt;br /&gt;
** Example URL: [http://grantgalitz.com/Beacon/gwc.php?get=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;net=gnutella2&amp;amp;ping=1 http://grantgalitz.com/Beacon/gwc.php?get=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;net=gnutella2&amp;amp;ping=1] &lt;br /&gt;
*** Example &amp;quot;Get&amp;quot; Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Getting the hosts and urls with a pong combined&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| I|pong|Beacon Cache 0.1.5D Beta|gnutella-gnutella2H|65.9.200.243:4968|248261H|68.228.129.75:44599|242678H|98.240.196.122:8206|240719H|76.104.12.133:14921|218273H|69.136.1.12:3924|211610H|81.154.208.71:8595|174402H|97.96.105.51:2076|153610H|74.192.153.212:39340|144203H|72.190.106.57:12584|132984H|78.93.71.132:12334|125668H|82.43.248.184:27560|97974H|196.205.224.97:6357|86763H|74.129.219.30:33172|82005H|76.104.12.133:19185|57182H|69.59.83.131:18442|38628U|[http://www.k33bz.com/g2/bazooka.php%7C248639 http://www.k33bz.com/g2/bazooka.php|248639]U|[http://gwebcache.ns1.net/%7C248592 http://gwebcache.ns1.net/|248592]U|[http://gwc2.wodi.org/skulls.php%7C248384 http://gwc2.wodi.org/skulls.php|248384]U|[http://gwc.guufshop.com/skulls/skulls.php%7C248322 http://gwc.guufshop.com/skulls/skulls.php|248322]U|[http://groovy.syxy.com/up/skulls.php%7C248300 http://groovy.syxy.com/up/skulls.php|248300]U|[http://g2.tjtech.org/g2/index.php%7C247770 http://g2.tjtech.org/g2/index.php|247770]U|[http://midian.jayl.de/g2/bazooka.php%7C240719 http://midian.jayl.de/g2/bazooka.php|240719]U|[http://www.dom2porno.info/skulls/skulls.php%7C207473 http://www.dom2porno.info/skulls/skulls.php|207473]U|[http://gwc.frodoslair.net/skulls/skulls%7C125668 http://gwc.frodoslair.net/skulls/skulls|125668]U|[http://holograph.uni.cc/other/skulls.php%7C9642 http://holograph.uni.cc/other/skulls.php|9642] &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Variables&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Mandatory&#039;&#039;&#039; &lt;br /&gt;
** ping: &lt;br /&gt;
*** Main Part: I|pong| &lt;br /&gt;
*** Then add the cache name and version: I|pong|fakecache 0.01 &lt;br /&gt;
*** Then lastly add the network support: &lt;br /&gt;
**** I|pong|fakecache 0.01|gnutella &lt;br /&gt;
***** - Gnutella only &lt;br /&gt;
**** I|pong|fakecache 0.01|gnutella2 &lt;br /&gt;
***** - Gnutella2 only &lt;br /&gt;
**** I|pong|fakecache 0.01|gnutella-gnutella2 &lt;br /&gt;
***** - Gnutella and Gnutella2 served &lt;br /&gt;
** get: &lt;br /&gt;
*** Used by clients to requests alternate cache URLs along with IPs and their port numbers. &lt;br /&gt;
** update: &lt;br /&gt;
*** url: &lt;br /&gt;
**** Client update giving an alternate cache URL. &lt;br /&gt;
**** Formatted with a http:// prefix to each cache. &lt;br /&gt;
*** ip: &lt;br /&gt;
**** Client update giving one&#039;s IP to submit. &lt;br /&gt;
** net: &lt;br /&gt;
*** Which network to serve the client. &lt;br /&gt;
**** Gnutella &lt;br /&gt;
***** Ex: net=gnutella &lt;br /&gt;
**** Gnutella2 &lt;br /&gt;
***** Ex: net=gnutella2 &lt;br /&gt;
**** &#039;&#039;&#039;Should always be lowercase&#039;&#039;&#039; &lt;br /&gt;
***** GWCs should automatically convert network name given to lowercase to prevent Net ID mismatches &lt;br /&gt;
&lt;br /&gt;
solely on case alone. &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
* &lt;br /&gt;
** client: &lt;br /&gt;
*** Four letter code of the client. ex: RAZA &lt;br /&gt;
** version: &lt;br /&gt;
*** Version number of the client. &lt;br /&gt;
* &#039;&#039;&#039;Optional&#039;&#039;&#039; &lt;br /&gt;
** cluster: &lt;br /&gt;
*** To add extra info to an IP update. &lt;br /&gt;
**** Output by cache: H|0.0.0.0|AGE OF HOST (Seconds)|clustering some bull**** &lt;br /&gt;
** statfile: &lt;br /&gt;
*** Exactly like the specification 1 statfile &#039;&#039;&#039;(Same routine and output style)&#039;&#039;&#039;. &lt;br /&gt;
*** Statistics of the cache request: &lt;br /&gt;
**** First line: Total requests of the cache number. &lt;br /&gt;
**** Second line: Requests of the cache an hour number. &lt;br /&gt;
**** Third line: Updates of the cache an hour number. &lt;br /&gt;
&lt;br /&gt;
==== Specification 2.1 ====&lt;br /&gt;
&#039;&#039;&#039;This is an extension of specification 2, not a separate specification!&#039;&#039;&#039; &lt;br /&gt;
Pong extension &lt;br /&gt;
* Append the networks supported joined by a hyphen &#039;-&#039;. &lt;br /&gt;
* Used for client-side validation of networks supported and for network support reporting to other web caches. &lt;br /&gt;
* Format: &lt;br /&gt;
** I|pong|cache name|network names joined by &#039;-&#039; &lt;br /&gt;
** Format Examples: &lt;br /&gt;
*** I|pong|fakecache 0.01|gnutella &lt;br /&gt;
**** - Gnutella only &lt;br /&gt;
*** I|pong|fakecache 0.01|gnutella2 &lt;br /&gt;
**** - Gnutella2 only &lt;br /&gt;
*** I|pong|fakecache 0.01|gnutella-gnutella2 &lt;br /&gt;
**** - Gnutella and Gnutella2 served &lt;br /&gt;
Host Output &lt;br /&gt;
* Just like specification 2, but with more fields supported for host output. &lt;br /&gt;
** H|ip:port|age in cache|clustering|leaves|4 letter vendor code|reported uptime of host|max. leaves possible &lt;br /&gt;
*** The host, age, and clustering fields are all still the same as in specification 2. &lt;br /&gt;
*** The leaf count of the hub reported is in the 5th field. &lt;br /&gt;
*** The vendor code with version number is in the 6th field. &lt;br /&gt;
Request Control Variables: &lt;br /&gt;
* getleaves &lt;br /&gt;
** Used to obtain leaf counts of hubs given &lt;br /&gt;
** 4th field ultilized for current leaf count. &lt;br /&gt;
** 7th field ultilized for maximum leaf slots possible. &lt;br /&gt;
** Use this as &#039;getleaves=1&#039; or &#039;getleaves&#039; to enable. &lt;br /&gt;
* getclusters &lt;br /&gt;
** Enables/Disables clustering. &lt;br /&gt;
** Use this as &#039;getclusters=1&#039;. &lt;br /&gt;
** Using &#039;getclusters&#039; or &#039;getclusters=0&#039; disables cluster output. &lt;br /&gt;
* getvendors &lt;br /&gt;
** Used to obtain the vendor code w/ version number of the hubs given. &lt;br /&gt;
** Found in the 5th field. &lt;br /&gt;
** Use this as &#039;getvendors=1&#039; or &#039;getvendors&#039; to enable. &lt;br /&gt;
* getuptime &lt;br /&gt;
** Used to obtain the vendor code w/ version number of the hubs given. &lt;br /&gt;
** Value is static, do not change the value given when time passes. &lt;br /&gt;
** Found in the 6th field. &lt;br /&gt;
** Use this as &#039;getuptime=1&#039; or &#039;getuptime&#039; to enable. &lt;br /&gt;
* spec &lt;br /&gt;
** To force the specification parameter &lt;br /&gt;
** Currently is only supported by Beacon Cache II &lt;br /&gt;
* pv &lt;br /&gt;
** Similar to the &#039;spec&#039; parameter, except that it does not force, instead it simply negotiates the specification. &lt;br /&gt;
Special Data Requests &lt;br /&gt;
* info &lt;br /&gt;
** Outputs extra details of your cache. &lt;br /&gt;
*** Start with the informational response: I| &lt;br /&gt;
**** Ex: I|open-source|1 &lt;br /&gt;
* support &lt;br /&gt;
** Outputs USEFUL details of your cache. &lt;br /&gt;
*** Start with the informational response: I| &lt;br /&gt;
**** Ex: I|support|gnutella2 &lt;br /&gt;
* getnetworks &lt;br /&gt;
** Outputs the enabled networks in two formats. &lt;br /&gt;
*** Start with the informational response: I| &lt;br /&gt;
**** For the &#039;I|nets|&#039; line &lt;br /&gt;
***** The third field contains the supported networks joined by &#039;-&#039;. &lt;br /&gt;
**** For the &#039;I|networks|&#039; line &lt;br /&gt;
***** Interpret the fields from 3 and beyond as individual network names to challenge against. &lt;br /&gt;
*** Examples &lt;br /&gt;
**** &lt;br /&gt;
***** I|nets|gnutella-gnutella2 &lt;br /&gt;
***** I|networks|gnutella|gnutella2 &lt;br /&gt;
Update Extension Variables: &lt;br /&gt;
* x_leaves &lt;br /&gt;
** Number of leaves running on a given hub or ultrapeer. &lt;br /&gt;
** &#039;&#039;&#039;Value must not be greater than an integer value of 2047.&#039;&#039;&#039; &lt;br /&gt;
** &#039;&#039;&#039;Note: It is important to know that PHP automaticaly replace dots with underscores, so to keep compatibility with old/new version of clients all caches should support both variants, example: x.leaves x_leaves&#039;&#039;&#039; &lt;br /&gt;
* x_max &lt;br /&gt;
** Maximum number of leaves possible on a given hub or ultrapeer. &lt;br /&gt;
** &#039;&#039;&#039;Value must not be greater than an integer value of 2047.&#039;&#039;&#039; &lt;br /&gt;
* uptime &lt;br /&gt;
** Value submitted must be an integer value of the number of seconds of uptime. &lt;br /&gt;
** &#039;&#039;&#039;Value must not be greater than an integer value of 1 year (31536000) and less than 1 hour (60).&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== Pinging Caches With Your Cache ===&lt;br /&gt;
&#039;&#039;&#039;Please follow this standard:&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Client: TEST&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Version: Your Cache&#039;s Name&#039;&#039;&#039; &lt;br /&gt;
** The old value for &amp;quot;version&amp;quot; was 1 &lt;br /&gt;
&#039;&#039;&#039;Some variables to attach to the ping (compatibility):&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;multi&#039;&#039;&#039; &lt;br /&gt;
** Used by some gwcs in their pings to other gwcs. &lt;br /&gt;
** &amp;lt;nowiki&amp;gt;It tells the pinged cache to ignore the &amp;quot;net&amp;quot; parameter (so it should never say network not supported) and outputting the pong using this format, if possible, &amp;quot;I|pong|[cache name] [cache version]|[supported networks list]&amp;quot; - example: I|pong|Skulls 0.2.9|gnutella-gnutella2 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
** Used by Skulls GWC only, supported by Skulls and Beacon Cache II. &lt;br /&gt;
* &#039;&#039;&#039;cache&#039;&#039;&#039; &lt;br /&gt;
** This is added to every request made by some gwcs, it is for statistical purposes only. &lt;br /&gt;
** It simply tells the remote cache that the client is a GWC. &lt;br /&gt;
&#039;&#039;&#039;Help&#039;&#039;&#039; &lt;br /&gt;
* For PHP &lt;br /&gt;
** Use the fsockopen() function to open a connection to a cache. &lt;br /&gt;
*** Make sure you &amp;quot;write&amp;quot; to the fsockopen carry value to open the GWC&#039;s target file. &lt;br /&gt;
**** [http://us.php.net/manual/en/function.fsockopen.php http://us.php.net/manual/en/function.fsockopen.php] &lt;br /&gt;
&lt;br /&gt;
=== Variable Combination Standards ===&lt;br /&gt;
&#039;&#039;&#039;Net variable decides specification!&#039;&#039;&#039; &lt;br /&gt;
* There are many ways to determine spec., but going with net is the safe way. &lt;br /&gt;
* Skulls GWC does not use the network parameter to determine specification level. &lt;br /&gt;
* Beacon Cache (I and II) uses the network parameter to determine the specification level. &lt;br /&gt;
&#039;&#039;&#039;Your cache needs to be able to process certain combinations of variables.&#039;&#039;&#039; &lt;br /&gt;
* Update variable &lt;br /&gt;
** Update should not fail if absent if spec. 2. &lt;br /&gt;
*** A Specification 2 parameter. &lt;br /&gt;
Spec 1 parameters used in Spec 2: &lt;br /&gt;
* Should still accept hostfile and urlfile responses for spec. 2. &lt;br /&gt;
** Beacon Cache (I and II) accepts these parameters on spec 2. &lt;br /&gt;
The &#039;spec&#039; paameter can be used to force a specification: &lt;br /&gt;
* Only known to exist in Beacon Cache II, it can force the request to be handled as a specification 1 or 2 request. &lt;br /&gt;
* Spec 1 = &#039;spec=1&#039; &lt;br /&gt;
* Spec 2 = &#039;spec=2&#039; &lt;br /&gt;
* If &#039;spec&#039; is not equal to any current spec, then default to the predetermined spec. &lt;br /&gt;
&#039;&#039;&#039;Multiple variable requests&#039;&#039;&#039; &lt;br /&gt;
* If for instance a ping and request exist, you should always handle them properly. &lt;br /&gt;
** Same goes with other combos like an update and ping, statfile + ping and info. &lt;br /&gt;
* Handle multiple variables as BEST as possible! &lt;br /&gt;
** Some scanners and GWCs like to fit all their requests into one URL send. &lt;br /&gt;
&lt;br /&gt;
=== Further Information: ===&lt;br /&gt;
* [http://www.gnucleus.com/gwebcache/ Original GWC] [http://www.gnucleus.com/gwebcache/ site] &lt;br /&gt;
** [http://gnucleus.sourceforge.net/gwebcache/specs.html GWC Spec. 1] &lt;br /&gt;
** [http://gnucleus.sourceforge.net/gwebcache/newgwc.html GWC Spec. 2] &lt;br /&gt;
&lt;br /&gt;
=== Gnutella Web Cache ===&lt;br /&gt;
Gnutella requires Gnutella Web Caches (GWC) to get IPs to establish a connection to the network.  These are critical to ensuring the health of the network.  If you have a dedicated server and can spare some extra bandwidth then please consider running a GWC.  People that don&#039;t have a dedicated server or are on normal broadband consumer lines should not run a cache from home.&lt;br /&gt;
&lt;br /&gt;
A GWC is a simple script that can be put on any webserver that supports one of the following scripting languages:&lt;br /&gt;
*JSP (Java Servlet)&lt;br /&gt;
**[http://web.archive.org/web/20061108091447/http://www.mager.org/GWebCache/ Java Servlet GWebCache Application (Archive.org)]&lt;br /&gt;
*C&lt;br /&gt;
**[http://ghostwhitecrab.com/crab/ GhostWhiteCrab]&lt;br /&gt;
*Perl &lt;br /&gt;
**[http://www.jonatkins.com/perlgcache/ Jon Atkins&#039; perlgcache] &lt;br /&gt;
**The original [http://www.gnucleus.com/gwebcache/dist/ GnuWebCache]&lt;br /&gt;
*PHP &lt;br /&gt;
**[http://gwcii.sourceforge.net/ PHPGnuCacheII] - MySQL&lt;br /&gt;
**[http://www.bazookanetworks.com Bazooka G2WC] (recommended) - flat files&lt;br /&gt;
**[http://sourceforge.net/projects/skulls/ Skulls! Multi-Network WebCache] - flat files&lt;br /&gt;
====Further Information:====&lt;br /&gt;
*[http://www.gnucleus.com/gwebcache/|Original GWC site]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{RecoveredPage|--&amp;gt;Saved in timestamp 20090421202728Retrieved from &amp;quot;[https://www.pantheraproject.net/wiki/index.php?title=GWC This page was last modified on April 18, 2009, at 23:25. &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;Copyright © 2002-2009 Shareaza Development Team. &amp;lt;/center&amp;gt;&amp;lt;center&amp;gt;[[Image:poweredby_mediawiki_88x31.png]] --[[User:Ocexyz|Ocexyz]] 16:20, 27 July 2009 (UTC)}}&lt;br /&gt;
&lt;br /&gt;
{{RecoveredPage|Warninig: here ends pasted better formatted recovery. Row recovery has been mooved below as I don&#039;t know if anybody has made any changes in it. If not then row recovery can be deleted I suppose. Paste starts from == Shareaza Specific Details == and ends at second == Shareaza Specific Details ==, here. I hope it is visible.  --[[User:Ocexyz|Ocexyz]] 16:20, 27 July 2009 (UTC)  }}&lt;br /&gt;
&lt;br /&gt;
==Shareaza Specific Details==&lt;br /&gt;
&lt;br /&gt;
{{RecoveredPage|Warninig: here ends pasted better formatted recovery. Row recovery has been mooved below as I don&#039;t know if anybody has made any changes in it. If not then row recovery can be deleted I suppose. Paste starts from &amp;gt;&amp;gt;Shareaza Specific Details&amp;lt;&amp;lt; and ends at second &amp;gt;&amp;gt; Shareaza Specific Details&amp;lt;&amp;lt;, here. I hope it is visible.  --[[User:Ocexyz|Ocexyz]] 23:27, 27 July 2009 (UTC)  }}&lt;br /&gt;
&lt;br /&gt;
* Get String Breakdown:&lt;br /&gt;
          o Update a leaf&lt;br /&gt;
                + &amp;quot;?update=1&amp;amp;ip=(ip):(port)&amp;amp;x_leaves=(leaf count) &lt;br /&gt;
          o Ping Variable&lt;br /&gt;
                + Appends &amp;amp;ping=1 to identify the cache name in debug messages (for gnutella and gnutella2 in 2.4.0.0, but only for gnutella2 now in 2.4.0.X for spec1 cache compatibility).&lt;br /&gt;
                + This feature new to Shareaza. &lt;br /&gt;
          o Network Variable&lt;br /&gt;
                + Appends &amp;amp;net=gnutella2 on Gnutella2 queries.&lt;br /&gt;
                + Does NOT append a network variable on Gnutella(1) queries. &lt;br /&gt;
          o Client Name / Version Format (2.4.0.0 and earlier):&lt;br /&gt;
                + &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) )&lt;br /&gt;
                + &amp;amp;version=(Shareaza&#039;s version) &lt;br /&gt;
          o Client Name / Version Format (2.4.0.X):&lt;br /&gt;
                + If Gnutella&lt;br /&gt;
                      # &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) )&lt;br /&gt;
                      # &amp;amp;version=(Shareaza&#039;s version) &lt;br /&gt;
                + If Gnutella2&lt;br /&gt;
                      # &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) )+(Shareaza&#039;s version) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* GWC Response Matching:&lt;br /&gt;
          o i|&lt;br /&gt;
                + Informational output alone will not be taken as GWC &#039;success.&#039; &lt;br /&gt;
          o i|access|period|(time in sec.)&lt;br /&gt;
                + Time in seconds before Shareaza is allowed to make a request to the cache. &lt;br /&gt;
          o i|update|period|(time in sec.)&lt;br /&gt;
                + Time in seconds before Shareaza is allowed to update to the cache. &lt;br /&gt;
          o i|force|remove and i|update|warning|bad url&lt;br /&gt;
                + Remove the GWC from the internal list. &lt;br /&gt;
          o Some Response Matches (added in 2.3.1.X)&lt;br /&gt;
                + i|NO-URL-NO-HOSTS&lt;br /&gt;
                      # Outputs warning of the cache being totally empty to the system log. &lt;br /&gt;
                + i|NO-URL&lt;br /&gt;
                      # Outputs warning of the cache having no alternative URLs to the system log. &lt;br /&gt;
                + i|NO-HOSTS&lt;br /&gt;
                      # Outputs warning of the cache having no hosts to the system log. &lt;br /&gt;
                + i|warning|&lt;br /&gt;
                      # Outputs warning of the cache to the system log. &lt;br /&gt;
                + ERROR Something Failed&lt;br /&gt;
                      # Outputs warning of the cache to the system log(Buggy Bazooka GWCs workaround). &lt;br /&gt;
                + i|warning|You came back too early (2.3.1.X)&lt;br /&gt;
                + i|warning|client|early (2.3.1.X)&lt;br /&gt;
                + WARNING: You came back too early (2.3.1.X)&lt;br /&gt;
                + ERROR: Client returned too early (2.3.1.X)&lt;br /&gt;
                      # Flood detection for the update side.&lt;br /&gt;
                      # Outputs GWebCache(update) Too many connection attempts to the system log. &lt;br /&gt;
                + too early (2.3.1.X)&lt;br /&gt;
                + early (2.4.0.X)&lt;br /&gt;
                      # Flood detection for the request side.&lt;br /&gt;
                      # Outputs GWebCache URL: Too many connection attempts to the system log. &lt;br /&gt;
                + i|update|OK&lt;br /&gt;
                      # Outputs &amp;quot;GWebCache(v2) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
                + OK&lt;br /&gt;
                      # Outputs &amp;quot;GWebCache(v1) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* GWC Response Matching:&lt;br /&gt;
          o i|&lt;br /&gt;
                + Informational output alone will not be taken as GWC &#039;success.&#039; &lt;br /&gt;
          o i|access|period|(time in sec.)&lt;br /&gt;
                + Time in seconds before Shareaza is allowed to make a request to the cache. &lt;br /&gt;
          o i|update|period|(time in sec.)&lt;br /&gt;
                + Time in seconds before Shareaza is allowed to update to the cache. &lt;br /&gt;
          o i|force|remove and i|update|warning|bad url&lt;br /&gt;
                + Remove the GWC from the internal list. &lt;br /&gt;
          o Some Response Matches (added in 2.3.1.X)&lt;br /&gt;
                + i|NO-URL-NO-HOSTS&lt;br /&gt;
                      # Outputs warning of the cache being totally empty to the system log. &lt;br /&gt;
                + i|NO-URL&lt;br /&gt;
                      # Outputs warning of the cache having no alternative URLs to the system log. &lt;br /&gt;
                + i|NO-HOSTS&lt;br /&gt;
                      # Outputs warning of the cache having no hosts to the system log. &lt;br /&gt;
                + i|warning|&lt;br /&gt;
                      # Outputs warning of the cache to the system log. &lt;br /&gt;
                + ERROR Something Failed&lt;br /&gt;
                      # Outputs warning of the cache to the system log(Buggy Bazooka GWCs workaround). &lt;br /&gt;
                + i|warning|You came back too early (2.3.1.X)&lt;br /&gt;
                + i|warning|client|early (2.3.1.X)&lt;br /&gt;
                + WARNING: You came back too early (2.3.1.X)&lt;br /&gt;
                + ERROR: Client returned too early (2.3.1.X)&lt;br /&gt;
                      # Flood detection for the update side.&lt;br /&gt;
                      # Outputs GWebCache(update) Too many connection attempts to the system log. &lt;br /&gt;
                + too early (2.3.1.X)&lt;br /&gt;
                + early (2.4.0.X)&lt;br /&gt;
                      # Flood detection for the request side.&lt;br /&gt;
                      # Outputs GWebCache URL: Too many connection attempts to the system log. &lt;br /&gt;
                + i|update|OK&lt;br /&gt;
                      # Outputs &amp;quot;GWebCache(v2) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
                + OK&lt;br /&gt;
                      # Outputs &amp;quot;GWebCache(v1) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Gnutella Web Cache Specifications==&lt;br /&gt;
&amp;lt;end of partial recovery by OCE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;end of recovered content&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;row recovery, start&amp;gt; &lt;br /&gt;
 Specification 1:&lt;br /&gt;
&lt;br /&gt;
    * Networks Served&lt;br /&gt;
          o Gnutella &lt;br /&gt;
    * Format&lt;br /&gt;
          o Update went fine:&lt;br /&gt;
                + Ex: OK &lt;br /&gt;
          o Update Warning (Small prob., not that bad):&lt;br /&gt;
                + Ex: &lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
WARNING: Error Message&lt;br /&gt;
&lt;br /&gt;
    * Severe Warning (No &#039;OK&#039; message sent)&lt;br /&gt;
          o Ex: &lt;br /&gt;
&lt;br /&gt;
WARNING: Error Message&lt;br /&gt;
&lt;br /&gt;
    * URL Output:&lt;br /&gt;
          o Ex: http://somefreakinrandomcache.com/cache/gcache.php&lt;br /&gt;
                + OR - WITH A PORT NUMBER (If not 80)&lt;br /&gt;
                      # Ex: http://somefreakinrandomcache.com:8080/cache/gcache.php &lt;br /&gt;
    * Host Output:&lt;br /&gt;
          o Ex: 66.132.55.12:6346 &lt;br /&gt;
    * Pong (ping variable response) - was explained below under the topic: variables.&lt;br /&gt;
    * Example Cache Output (Beacon Cache) For urlfile Command&lt;br /&gt;
          o Example &amp;quot;urlfile Output&amp;quot; URL: Ex: http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;urlfile=1&lt;br /&gt;
                + Example URL Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting urls with a pong combined&lt;br /&gt;
&lt;br /&gt;
PONG Beacon Cache 0.1.5D Beta&lt;br /&gt;
http://gwc.frodoslair.net/skulls/skulls.php&lt;br /&gt;
http://bbs.robertwoolley.co.uk/GWebCache/gcache.php&lt;br /&gt;
http://g2.tjtech.org/g2/&lt;br /&gt;
http://g2.tjtech.org/g2/index.php&lt;br /&gt;
http://gwc.monnsta.net/&lt;br /&gt;
http://holograph.uni.cc/other/skulls.php&lt;br /&gt;
http://gwc.nickstallman.net/&lt;br /&gt;
http://gwc.eod.cc/skulls.php&lt;br /&gt;
http://gwc.frodoslair.net/skulls/skulls&lt;br /&gt;
http://gwc.werwin.net/skulls.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * Example Cache Output (Beacon Cache) For hostfile Command&lt;br /&gt;
          o Example &amp;quot;hostfile Output&amp;quot; URL: Ex: http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;hostfile=1&lt;br /&gt;
                + Example Host Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting the hosts with a pong combined&lt;br /&gt;
&lt;br /&gt;
PONG Beacon Cache 0.1.5D Beta&lt;br /&gt;
71.8.84.153:3915&lt;br /&gt;
99.248.214.157:27529&lt;br /&gt;
69.60.241.55:16369&lt;br /&gt;
193.253.239.246:30218&lt;br /&gt;
68.156.175.121:6348&lt;br /&gt;
71.179.7.241:18344&lt;br /&gt;
74.196.22.241:6348&lt;br /&gt;
12.210.197.194:10531&lt;br /&gt;
222.150.143.77:10000&lt;br /&gt;
58.85.231.135:6346&lt;br /&gt;
24.141.199.164:20205&lt;br /&gt;
72.175.201.195:6348&lt;br /&gt;
69.81.129.228:4880&lt;br /&gt;
97.81.221.63:13219&lt;br /&gt;
70.15.130.224:7759&lt;br /&gt;
216.211.188.106:51903&lt;br /&gt;
75.167.168.156:48660&lt;br /&gt;
12.214.14.3:35916&lt;br /&gt;
76.177.244.106:24180&lt;br /&gt;
98.165.218.139:39630&lt;br /&gt;
68.112.182.125:3685&lt;br /&gt;
68.117.204.57:23482&lt;br /&gt;
65.12.154.25:40760&lt;br /&gt;
69.180.47.169:5711&lt;br /&gt;
75.138.40.173:24987&lt;br /&gt;
98.201.19.0:33662&lt;br /&gt;
70.187.2.144:6348&lt;br /&gt;
68.186.209.107:14429&lt;br /&gt;
69.159.7.61:6348&lt;br /&gt;
76.208.176.196:48199&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * For combining a hostfile and urlfile request:&lt;br /&gt;
          o Warning: This is non-standard.&lt;br /&gt;
          o Example Cache Output (Beacon Cache) For bfile Command&lt;br /&gt;
                + Example &amp;quot;bfile Output&amp;quot; URL: Ex: http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;bfile=1&lt;br /&gt;
                      # Example Host and URL Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting the hosts and urls with a pong combined&lt;br /&gt;
&lt;br /&gt;
PONG Beacon Cache 0.1.5D Beta&lt;br /&gt;
71.8.84.153:3915&lt;br /&gt;
99.248.214.157:27529&lt;br /&gt;
69.60.241.55:16369&lt;br /&gt;
193.253.239.246:30218&lt;br /&gt;
68.156.175.121:6348&lt;br /&gt;
71.179.7.241:18344&lt;br /&gt;
74.196.22.241:6348&lt;br /&gt;
12.210.197.194:10531&lt;br /&gt;
222.150.143.77:10000&lt;br /&gt;
58.85.231.135:6346&lt;br /&gt;
24.141.199.164:20205&lt;br /&gt;
72.175.201.195:6348&lt;br /&gt;
69.81.129.228:4880&lt;br /&gt;
97.81.221.63:13219&lt;br /&gt;
70.15.130.224:7759&lt;br /&gt;
216.211.188.106:51903&lt;br /&gt;
75.167.168.156:48660&lt;br /&gt;
12.214.14.3:35916&lt;br /&gt;
76.177.244.106:24180&lt;br /&gt;
98.165.218.139:39630&lt;br /&gt;
68.112.182.125:3685&lt;br /&gt;
68.117.204.57:23482&lt;br /&gt;
65.12.154.25:40760&lt;br /&gt;
69.180.47.169:5711&lt;br /&gt;
75.138.40.173:24987&lt;br /&gt;
98.201.19.0:33662&lt;br /&gt;
70.187.2.144:6348&lt;br /&gt;
68.186.209.107:14429&lt;br /&gt;
69.159.7.61:6348&lt;br /&gt;
76.208.176.196:48199&lt;br /&gt;
http://gwc.frodoslair.net/skulls/skulls.php&lt;br /&gt;
http://bbs.robertwoolley.co.uk/GWebCache/gcache.php&lt;br /&gt;
http://g2.tjtech.org/g2/&lt;br /&gt;
http://g2.tjtech.org/g2/index.php&lt;br /&gt;
http://gwc.monnsta.net/&lt;br /&gt;
http://holograph.uni.cc/other/skulls.php&lt;br /&gt;
http://gwc.nickstallman.net/&lt;br /&gt;
http://gwc.eod.cc/skulls.php&lt;br /&gt;
http://gwc.frodoslair.net/skulls/skulls&lt;br /&gt;
http://gwc.werwin.net/skulls.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * Variables&lt;br /&gt;
          o Mandatory&lt;br /&gt;
                + ping:&lt;br /&gt;
                      # Response should have this always: PONG&lt;br /&gt;
                      # After, put the cache&#039;s name. ex: PONG fakecache 0.01&lt;br /&gt;
                + client:&lt;br /&gt;
                      # Four letter code of the client. ex: RAZA &lt;br /&gt;
                + version:&lt;br /&gt;
                      # Version number of the client. &lt;br /&gt;
                + urlfile:&lt;br /&gt;
                      # Used by the client to request alternate cache urls. &lt;br /&gt;
                + hostfile:&lt;br /&gt;
                      # Used by the client to request IPs with port numbers attached. &lt;br /&gt;
                + url:&lt;br /&gt;
                      # Client update giving an alternate cache URL.&lt;br /&gt;
                      # Formatted with a http:// prefix to each cache. &lt;br /&gt;
                + ip:&lt;br /&gt;
                      # Client update giving one&#039;s IP to submit. &lt;br /&gt;
                + url1:&lt;br /&gt;
                      # OLD OUTDATED Client update giving an alternate cache URL.&lt;br /&gt;
                      # Formatted with a http:// prefix to each cache. &lt;br /&gt;
                + ip1:&lt;br /&gt;
                      # OLD OUTDATED Client update giving one&#039;s IP to submit. &lt;br /&gt;
          o Optional&lt;br /&gt;
                + bfile:&lt;br /&gt;
                      # For clients to request both URLs and IPs from the cache at the same time. &lt;br /&gt;
                + statfile:&lt;br /&gt;
                      # Statistics of the cache request:&lt;br /&gt;
                            * First line: Total requests of the cache number.&lt;br /&gt;
                            * Second line: Requests of the cache an hour number.&lt;br /&gt;
                            * Third line: Updates of the cache an hour number. &lt;br /&gt;
&lt;br /&gt;
Specification 2:&lt;br /&gt;
&lt;br /&gt;
    * Networks Served&lt;br /&gt;
          o Gnutella, Gnutella2, etc. &lt;br /&gt;
    * Format&lt;br /&gt;
          o Information Output&lt;br /&gt;
                + Starts with: I|&lt;br /&gt;
                      # Categories&lt;br /&gt;
                            * Pong (ping variable response) - Described below under the topic: variables.&lt;br /&gt;
                            * Update Status Response&lt;br /&gt;
                                  o Format: I|update&lt;br /&gt;
                                  o Responses&lt;br /&gt;
                                        + I|update|OK&lt;br /&gt;
                                              # - Everything went fine. &lt;br /&gt;
                                        + I|update|OK|WARNING&lt;br /&gt;
                                              # Small warning. &lt;br /&gt;
                                        + I|update|WARNING&lt;br /&gt;
                                              # Severe warning &lt;br /&gt;
                            * Plain Warnings&lt;br /&gt;
                                  o Format: I|WARNING&lt;br /&gt;
                                        + Append any warning messages after it - Ex: I|WARNING|You came back too early &lt;br /&gt;
                            * Extra Info - Described below under the topic: variables. &lt;br /&gt;
          o Host Output&lt;br /&gt;
                + Starts with: H|&lt;br /&gt;
                + Add the IP with its port:&lt;br /&gt;
                      # Ex: H|0.0.0.0:6346 &lt;br /&gt;
                + Add the time, thereafter, of the host&#039;s (In seconds*) time in cache:&lt;br /&gt;
                      # Ex: H|0.0.0.0:6346|45 &lt;br /&gt;
                + If cluster exists with cluster=somerandomwords&lt;br /&gt;
                      # Add the clustered words after the host&#039;s age:&lt;br /&gt;
                            * Ex: H|0.0.0.0:6346|45|somerandomwords &lt;br /&gt;
          o URL Output&lt;br /&gt;
                + Starts with: U|&lt;br /&gt;
                + Add the URL with http:// before it, plus the port (if it&#039;s not 80).&lt;br /&gt;
                      # Ex: U|http://somerandomcache.com/ &lt;br /&gt;
                + Add the time, thereafter, of the URL&#039;s time (In seconds*) in cache:&lt;br /&gt;
                      # Ex: U|http://somerandomcache.com/|45 &lt;br /&gt;
          o Example Cache Output (Beacon Cache) For get Command&lt;br /&gt;
                + Example URL: http://grantgalitz.com/Beacon/gwc.php?get=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;net=gnutella2&amp;amp;ping=1&lt;br /&gt;
                      # Example &amp;quot;Get&amp;quot; Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting the hosts and urls with a pong combined&lt;br /&gt;
&lt;br /&gt;
I|pong|Beacon Cache 0.1.5D Beta|gnutella-gnutella2&lt;br /&gt;
H|65.9.200.243:4968|248261&lt;br /&gt;
H|68.228.129.75:44599|242678&lt;br /&gt;
H|98.240.196.122:8206|240719&lt;br /&gt;
H|76.104.12.133:14921|218273&lt;br /&gt;
H|69.136.1.12:3924|211610&lt;br /&gt;
H|81.154.208.71:8595|174402&lt;br /&gt;
H|97.96.105.51:2076|153610&lt;br /&gt;
H|74.192.153.212:39340|144203&lt;br /&gt;
H|72.190.106.57:12584|132984&lt;br /&gt;
H|78.93.71.132:12334|125668&lt;br /&gt;
H|82.43.248.184:27560|97974&lt;br /&gt;
H|196.205.224.97:6357|86763&lt;br /&gt;
H|74.129.219.30:33172|82005&lt;br /&gt;
H|76.104.12.133:19185|57182&lt;br /&gt;
H|69.59.83.131:18442|38628&lt;br /&gt;
U|http://www.k33bz.com/g2/bazooka.php|248639&lt;br /&gt;
U|http://gwebcache.ns1.net/|248592&lt;br /&gt;
U|http://gwc2.wodi.org/skulls.php|248384&lt;br /&gt;
U|http://gwc.guufshop.com/skulls/skulls.php|248322&lt;br /&gt;
U|http://groovy.syxy.com/up/skulls.php|248300&lt;br /&gt;
U|http://g2.tjtech.org/g2/index.php|247770&lt;br /&gt;
U|http://midian.jayl.de/g2/bazooka.php|240719&lt;br /&gt;
U|http://www.dom2porno.info/skulls/skulls.php|207473&lt;br /&gt;
U|http://gwc.frodoslair.net/skulls/skulls|125668&lt;br /&gt;
U|http://holograph.uni.cc/other/skulls.php|9642&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * Variables&lt;br /&gt;
          o Mandatory&lt;br /&gt;
                + ping:&lt;br /&gt;
                      # Main Part: I|pong|&lt;br /&gt;
                      # Then add the cache name and version: I|pong|fakecache 0.01&lt;br /&gt;
                      # Then lastly add the network support:&lt;br /&gt;
                            * I|pong|fakecache 0.01|gnutella&lt;br /&gt;
                                  o - Gnutella only &lt;br /&gt;
                            * I|pong|fakecache 0.01|gnutella2&lt;br /&gt;
                                  o - Gnutella2 only &lt;br /&gt;
                            * I|pong|fakecache 0.01|gnutella-gnutella2&lt;br /&gt;
                                  o - Gnutella and Gnutella2 served &lt;br /&gt;
                + get:&lt;br /&gt;
                      # Used by clients to requests alternate cache URLs along with IPs and their port numbers. &lt;br /&gt;
                + update:&lt;br /&gt;
                      # url:&lt;br /&gt;
                            * Client update giving an alternate cache URL.&lt;br /&gt;
                            * Formatted with a http:// prefix to each cache. &lt;br /&gt;
                      # ip:&lt;br /&gt;
                            * Client update giving one&#039;s IP to submit. &lt;br /&gt;
                + net:&lt;br /&gt;
                      # Which network to serve the client.&lt;br /&gt;
                            * Gnutella&lt;br /&gt;
                                  o Ex: net=gnutella &lt;br /&gt;
                            * Gnutella2&lt;br /&gt;
                                  o Ex: net=gnutella2 &lt;br /&gt;
                            * Should always be lowercase&lt;br /&gt;
                                  o GWCs should automatically convert network name given to lowercase to prevent Net ID mismatches &lt;br /&gt;
&lt;br /&gt;
solely on case alone.&lt;br /&gt;
&lt;br /&gt;
    *&lt;br /&gt;
          o&lt;br /&gt;
                + client:&lt;br /&gt;
                      # Four letter code of the client. ex: RAZA &lt;br /&gt;
                + version:&lt;br /&gt;
                      # Version number of the client. &lt;br /&gt;
          o Optional&lt;br /&gt;
                + cluster:&lt;br /&gt;
                      # To add extra info to an IP update.&lt;br /&gt;
                            * Output by cache: H|0.0.0.0|AGE OF HOST (Seconds)|clustering some bull**** &lt;br /&gt;
                + statfile:&lt;br /&gt;
                      # Exactly like the specification 1 statfile (Same routine and output style).&lt;br /&gt;
                      # Statistics of the cache request:&lt;br /&gt;
                            * First line: Total requests of the cache number.&lt;br /&gt;
                            * Second line: Requests of the cache an hour number.&lt;br /&gt;
                            * Third line: Updates of the cache an hour number. &lt;br /&gt;
&lt;br /&gt;
Specification 2.1&lt;br /&gt;
&lt;br /&gt;
    * This is an extension of specification 2, not a separate specification!&lt;br /&gt;
    * Pong extension&lt;br /&gt;
          o Append the networks supported joined by a hyphen &#039;-&#039;.&lt;br /&gt;
          o Used for client-side validation of networks supported and for network support reporting to other web caches.&lt;br /&gt;
          o Format:&lt;br /&gt;
                + I|pong|cache name|network names joined by &#039;-&#039;&lt;br /&gt;
                + Format Examples:&lt;br /&gt;
                      # I|pong|fakecache 0.01|gnutella&lt;br /&gt;
                            * - Gnutella only &lt;br /&gt;
                      # I|pong|fakecache 0.01|gnutella2&lt;br /&gt;
                            * - Gnutella2 only &lt;br /&gt;
                      # I|pong|fakecache 0.01|gnutella-gnutella2&lt;br /&gt;
                            * - Gnutella and Gnutella2 served &lt;br /&gt;
    * Host Output&lt;br /&gt;
          o Just like specification 2, but with more fields supported for host output.&lt;br /&gt;
                + H|ip:port|age in cache|clustering|leaves|4 letter vendor code|reported uptime of host|max. leaves possible&lt;br /&gt;
                      # The host, age, and clustering fields are all still the same as in specification 2.&lt;br /&gt;
                      # The leaf count of the hub reported is in the 5th field.&lt;br /&gt;
                      # The vendor code with version number is in the 6th field. &lt;br /&gt;
    * Request Control Variables:&lt;br /&gt;
          o getleaves&lt;br /&gt;
                + Used to obtain leaf counts of hubs given&lt;br /&gt;
                + 4th field ultilized for current leaf count.&lt;br /&gt;
                + 7th field ultilized for maximum leaf slots possible.&lt;br /&gt;
                + Use this as &#039;getleaves=1&#039; or &#039;getleaves&#039; to enable. &lt;br /&gt;
          o getclusters&lt;br /&gt;
                + Enables/Disables clustering.&lt;br /&gt;
                + Use this as &#039;getclusters=1&#039;.&lt;br /&gt;
                + Using &#039;getclusters&#039; or &#039;getclusters=0&#039; disables cluster output. &lt;br /&gt;
          o getvendors&lt;br /&gt;
                + Used to obtain the vendor code w/ version number of the hubs given.&lt;br /&gt;
                + Found in the 5th field.&lt;br /&gt;
                + Use this as &#039;getvendors=1&#039; or &#039;getvendors&#039; to enable. &lt;br /&gt;
          o getuptime&lt;br /&gt;
                + Used to obtain the vendor code w/ version number of the hubs given.&lt;br /&gt;
                + Value is static, do not change the value given when time passes.&lt;br /&gt;
                + Found in the 6th field.&lt;br /&gt;
                + Use this as &#039;getuptime=1&#039; or &#039;getuptime&#039; to enable. &lt;br /&gt;
          o spec&lt;br /&gt;
                + To force the specification parameter&lt;br /&gt;
                + Currently is only supported by Beacon Cache II &lt;br /&gt;
          o pv&lt;br /&gt;
                + Similar to the &#039;spec&#039; parameter, except that it does not force, instead it simply negotiates the specification. &lt;br /&gt;
    * Special Data Requests&lt;br /&gt;
          o info&lt;br /&gt;
                + Outputs extra details of your cache.&lt;br /&gt;
                      # Start with the informational response: I|&lt;br /&gt;
                            * Ex: I|open-source|1 &lt;br /&gt;
          o support&lt;br /&gt;
                + Outputs USEFUL details of your cache.&lt;br /&gt;
                      # Start with the informational response: I|&lt;br /&gt;
                            * Ex: I|support|gnutella2 &lt;br /&gt;
          o getnetworks&lt;br /&gt;
                + Outputs the enabled networks in two formats.&lt;br /&gt;
                      # Start with the informational response: I|&lt;br /&gt;
                            * For the &#039;I|nets|&#039; line&lt;br /&gt;
                                  o The third field contains the supported networks joined by &#039;-&#039;. &lt;br /&gt;
                            * For the &#039;I|networks|&#039; line&lt;br /&gt;
                                  o Interpret the fields from 3 and beyond as individual network names to challenge against. &lt;br /&gt;
                      # Examples&lt;br /&gt;
                            *&lt;br /&gt;
                                  o I|nets|gnutella-gnutella2&lt;br /&gt;
                                  o I|networks|gnutella|gnutella2 &lt;br /&gt;
    * Update Extension Variables:&lt;br /&gt;
          o x_leaves&lt;br /&gt;
                + Number of leaves running on a given hub or ultrapeer.&lt;br /&gt;
                + Value must not be greater than an integer value of 2047.&lt;br /&gt;
                + Note: It is important to know that PHP automaticaly replace dots with underscores, so to keep compatibility with old/new version of clients all caches should support both variants, example: x.leaves x_leaves&lt;br /&gt;
          o x_max&lt;br /&gt;
                + Maximum number of leaves possible on a given hub or ultrapeer.&lt;br /&gt;
                + Value must not be greater than an integer value of 2047. &lt;br /&gt;
          o uptime&lt;br /&gt;
                + Value submitted must be an integer value of the number of seconds of uptime.&lt;br /&gt;
                + Value must not be greater than an integer value of 1 year (31536000) and less than 1 hour (60). &lt;br /&gt;
&lt;br /&gt;
Pinging Caches With Your Cache&lt;br /&gt;
&lt;br /&gt;
    * Please follow this standard:&lt;br /&gt;
          o Client: TEST&lt;br /&gt;
          o Version: Your Cache&#039;s Name&lt;br /&gt;
                + The old value for &amp;quot;version&amp;quot; was 1 &lt;br /&gt;
    * Some variables to attach to the ping (compatibility):&lt;br /&gt;
          o multi&lt;br /&gt;
                + Used by some gwcs in their pings to other gwcs.&lt;br /&gt;
                + It tells the pinged cache to ignore the &amp;quot;net&amp;quot; parameter (so it should never say network not supported) and outputting the pong using this format, if possible, &amp;quot;I|pong|[cache name] [cache version]|[supported networks list]|[url adding is enabled]&amp;quot; - example: I|pong|Skulls 0.2.8a|gnutella-gnutella2|1&lt;br /&gt;
                + Used by Skulls GWC only, supported by Skulls and Beacon Cache II. &lt;br /&gt;
          o cache&lt;br /&gt;
                + This is added to every request made by some gwcs, it is for statistical purposes only.&lt;br /&gt;
                + It simply tells the remote cache that the client is a GWC. &lt;br /&gt;
    * Help&lt;br /&gt;
          o For PHP&lt;br /&gt;
                + Use the fsockopen() function to open a connection to a cache.&lt;br /&gt;
                      # Make sure you &amp;quot;write&amp;quot; to the fsockopen carry value to open the GWC&#039;s target file.&lt;br /&gt;
                            * http://us.php.net/manual/en/function.fsockopen.php &lt;br /&gt;
&lt;br /&gt;
Variable Combination Standards&lt;br /&gt;
&lt;br /&gt;
    * Net variable decides specification!&lt;br /&gt;
          o There are many ways to determine spec., but going with net is the safe way.&lt;br /&gt;
          o Skulls GWC does not use the network parameter to determine specification level.&lt;br /&gt;
          o Beacon Cache (I and II) uses the network parameter to determine the specification level. &lt;br /&gt;
    * Your cache needs to be able to process certain combinations of variables.&lt;br /&gt;
          o Update variable&lt;br /&gt;
                + Update should not fail if absent if spec. 2.&lt;br /&gt;
                      # A Specification 2 parameter. &lt;br /&gt;
    * Spec 1 parameters used in Spec 2:&lt;br /&gt;
          o Should still accept hostfile and urlfile responses for spec. 2.&lt;br /&gt;
                + Beacon Cache (I and II) accepts these parameters on spec 2. &lt;br /&gt;
    * The &#039;spec&#039; paameter can be used to force a specification:&lt;br /&gt;
          o Only known to exist in Beacon Cache II, it can force the request to be handled as a specification 1 or 2 request.&lt;br /&gt;
          o Spec 1 = &#039;spec=1&#039;&lt;br /&gt;
          o Spec 2 = &#039;spec=2&#039;&lt;br /&gt;
          o If &#039;spec&#039; is not equal to any current spec, then default to the predetermined spec. &lt;br /&gt;
    * Multiple variable requests&lt;br /&gt;
          o If for instance a ping and request exist, you should always handle them properly.&lt;br /&gt;
                + Same goes with other combos like an update and ping, statfile + ping and info. &lt;br /&gt;
          o Handle multiple variables as BEST as possible!&lt;br /&gt;
                + Some scanners and GWCs like to fit all their requests into one URL send. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;row recovery, end&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Further Information:&lt;br /&gt;
&lt;br /&gt;
* [http://www.gnucleus.com/gwebcache/ Original GWC site]&lt;br /&gt;
** [http://gnucleus.sourceforge.net/gwebcache/specs.html GWC Spec. 1]&lt;br /&gt;
** [http://gnucleus.sourceforge.net/gwebcache/newgwc.html GWC Spec. 2] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;content recovered from last aviable backup&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Gnutella Web Cache===&lt;br /&gt;
Gnutella requires Gnutella Web Caches (GWC) to get IPs to establish a connection to the network.  These are critical to ensuring the health of the network.  If you have a dedicated server and can spare some extra bandwidth then please consider running a GWC.  People that don&#039;t have a dedicated server or are on normal broadband consumer lines should not run a cache from home.&lt;br /&gt;
&lt;br /&gt;
A GWC is a simple script that can be put on any webserver that supports one of the following scripting languages:&lt;br /&gt;
*JSP (Java Servlet)&lt;br /&gt;
**[http://web.archive.org/web/20061108091447/http://www.mager.org/GWebCache/ Java Servlet GWebCache Application (Archive.org)]&lt;br /&gt;
*C&lt;br /&gt;
**[http://ghostwhitecrab.com/crab/ GhostWhiteCrab]&lt;br /&gt;
*Perl &lt;br /&gt;
**[http://www.jonatkins.com/perlgcache/ Jon Atkins&#039; perlgcache] &lt;br /&gt;
**The original [http://www.gnucleus.com/gwebcache/dist/ GnuWebCache]&lt;br /&gt;
*PHP &lt;br /&gt;
**[http://gwcii.sourceforge.net/ PHPGnuCacheII] - MySQL&lt;br /&gt;
**[http://www.bazookanetworks.com Bazooka G2WC] (recommended) - flat files&lt;br /&gt;
**[http://sourceforge.net/projects/skulls/ Skulls! Multi-Network WebCache] - flat files&lt;br /&gt;
=== Further Information: ===&lt;br /&gt;
* [http://www.gnucleus.com/gwebcache/ Original GWC site]&lt;br /&gt;
&lt;br /&gt;
[[Category:External Links]]&lt;/div&gt;</summary>
		<author><name>Ale5000</name></author>
	</entry>
	<entry>
		<id>https://shareaza.sourceforge.net/w/index.php?title=GWC_specs&amp;diff=11508</id>
		<title>GWC specs</title>
		<link rel="alternate" type="text/html" href="https://shareaza.sourceforge.net/w/index.php?title=GWC_specs&amp;diff=11508"/>
		<updated>2015-04-01T23:27:55Z</updated>

		<summary type="html">&lt;p&gt;Ale5000: Removed died link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;For general information on GWCs, have a look at the [[GWC]] Wiki page.&#039;&#039;&lt;br /&gt;
{{do not translate}}&lt;br /&gt;
This page is thought to give an overview over the GWC specifications as they are implemented into Shareaza.&lt;br /&gt;
&lt;br /&gt;
A GWC is a simple script that can be put on any webserver that supports one of the following scripting languages: &lt;br /&gt;
&lt;br /&gt;
* JSP (Java Servlet) &lt;br /&gt;
** [http://www1.mager.org/GWebCache/ Jums Web Cache] (Excellent for heavy loads) &lt;br /&gt;
* C &lt;br /&gt;
** [http://wiki.limewire.org/index.php?title=GhostWhiteCrab GhostWhiteCrab] (For dedicated server environments and people who know how to compile C source code!) &lt;br /&gt;
* ASP &lt;br /&gt;
** [http://www.edazzle.net/downloads/gerry.zip Gerry GWC] &lt;br /&gt;
** [https://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=7846&amp;amp;lngWId=4 Lynn (v.s. 0.5)] &lt;br /&gt;
** [https://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=7731&amp;amp;lngWId=4 Lynn (v.s. 0.4)] &lt;br /&gt;
** [http://www.poundwebhosting.com/cgi-bin/lynnx.asp LynnX] &lt;br /&gt;
* Perl &lt;br /&gt;
** [http://www.jonatkins.com/perlgcache/ Jon Atkins&#039; perlgcache] &lt;br /&gt;
** The original [http://www.gnucleus.com/gwebcache/dist/ GnuWebCache] &lt;br /&gt;
* &#039;&#039;&#039;PHP&#039;&#039;&#039; &#039;&#039;(Tip: PHP GWCs are usually the easiest to run and setup on a server.)&#039;&#039;&lt;br /&gt;
** [http://gwcii.sourceforge.net/ PHPGnuCacheII] &lt;br /&gt;
** Bazooka G2WC&lt;br /&gt;
** [http://sourceforge.net/projects/skulls/ Skulls! Multi-Network WebCache] &lt;br /&gt;
** [http://sourceforge.net/projects/beaconcache/ Beacon Cache] &lt;br /&gt;
** [http://code.google.com/p/cachechu/ Cachechu G2WC] &lt;br /&gt;
** The original [http://www.gnucleus.com/gwebcache/dist/ GnuWebCache] &#039;&#039;(PHP version is no longer supported)&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
== Breakdown Of The Gnutella Web Caches: == &lt;br /&gt;
{{RecoveredPage|I recently put this into a table. The contents need to be verified -- [[User:Cyko 01|Cyko 01]]}}&lt;br /&gt;
&lt;br /&gt;
{| width= auto; style=&amp;quot;font-size: 85%; text-align: center;text-valign: middle;&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Cache:&lt;br /&gt;
! rowspan=1 |Gnutella:&lt;br /&gt;
! rowspan=1 |Gnutella2:&lt;br /&gt;
! rowspan=1 |Spec 1:&lt;br /&gt;
! rowspan=1 |Spec 2:&lt;br /&gt;
! rowspan=1 |Flat-File:&lt;br /&gt;
! rowspan=1 |SQL:&lt;br /&gt;
! rowspan=1 |Installer:&lt;br /&gt;
! rowspan=1 |Other Networks:&lt;br /&gt;
! rowspan=1 |Different network instances:&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Beacon Cache (Core 2)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|style=&amp;quot;background: #CCFFCC;&amp;quot;| Yes (As of 0.2.0 Alpha)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Beacon Cache (Core 1)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Skulls&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|JumsWebCache&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|GnuWebCache (Perl)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|GnuWebCache (PHP) &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|GhostWhiteCrab(GWC) &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|style=&amp;quot;background: #FFFFCC;&amp;quot;| N/A&lt;br /&gt;
|style=&amp;quot;background: #FFFFCC;&amp;quot;| N/A&lt;br /&gt;
|style=&amp;quot;background: #FFFFCC;&amp;quot;| N/A&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|PHPGnuCacheII &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Bazooka &lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Cachechu&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Perlgcache&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Gerry GWC (v2)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Gerry GWC (v1)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Lynn&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|LynnX&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Shareaza Specific Details == &lt;br /&gt;
&lt;br /&gt;
{{RecoveredPage|Warninig: here I have pasted better formatted recovery, but not verified. Row recovery has been mooved below as I don&#039;t know if anybody has made any changes in it. If not then row recovery can be deleted. Paste starts from &amp;gt;&amp;gt;Shareaza Specific Details&amp;lt;&amp;lt;, here, and ends at second &amp;gt;&amp;gt;Shareaza Specific Details&amp;lt;&amp;lt; I hope it is visible.  --[[User:Ocexyz|Ocexyz]] 23:27, 27 July 2009 (UTC)}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Get String Breakdown:&#039;&#039;&#039; &lt;br /&gt;
* Update a leaf &lt;br /&gt;
** &amp;quot;?update=1&amp;amp;ip=(ip):(port)&amp;amp;x_leaves=(leaf count) &lt;br /&gt;
* Ping Variable &lt;br /&gt;
** Appends &amp;amp;ping=1 to identify the cache name in debug messages (for gnutella and gnutella2 in 2.4.0.0, but only for gnutella2 now in 2.4.0.X for spec1 cache compatibility). &lt;br /&gt;
** This feature new to Shareaza. &lt;br /&gt;
* Network Variable &lt;br /&gt;
** Appends &amp;amp;net=gnutella2 on Gnutella2 queries. &lt;br /&gt;
** Does NOT append a network variable on Gnutella(1) queries. &lt;br /&gt;
* Client Name / Version Format (2.4.0.0 and earlier): &lt;br /&gt;
** &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) ) &lt;br /&gt;
** &amp;amp;version=(Shareaza&#039;s version) &lt;br /&gt;
* Client Name / Version Format (2.4.0.X): &lt;br /&gt;
** If Gnutella &lt;br /&gt;
*** &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) ) &lt;br /&gt;
*** &amp;amp;version=(Shareaza&#039;s version) &lt;br /&gt;
** If Gnutella2 &lt;br /&gt;
*** &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) )+(Shareaza&#039;s version) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GWC Response Matching:&#039;&#039;&#039; &lt;br /&gt;
* i| &lt;br /&gt;
** Informational output alone will not be taken as GWC &#039;success.&#039; &lt;br /&gt;
* i|access|period|(time in sec.) &lt;br /&gt;
** Time in seconds before Shareaza is allowed to make a request to the cache. &lt;br /&gt;
* i|update|period|(time in sec.) &lt;br /&gt;
** Time in seconds before Shareaza is allowed to update to the cache. &lt;br /&gt;
* i|force|remove and i|update|warning|bad url &lt;br /&gt;
** Remove the GWC from the internal list. &lt;br /&gt;
* Some Response Matches (added in 2.3.1.X) &lt;br /&gt;
** i|NO-URL-NO-HOSTS &lt;br /&gt;
*** Outputs warning of the cache being totally empty to the system log. &lt;br /&gt;
** i|NO-URL &lt;br /&gt;
*** Outputs warning of the cache having no alternative URLs to the system log. &lt;br /&gt;
** i|NO-HOSTS &lt;br /&gt;
*** Outputs warning of the cache having no hosts to the system log. &lt;br /&gt;
** i|warning| &lt;br /&gt;
*** Outputs warning of the cache to the system log. &lt;br /&gt;
** ERROR Something Failed &lt;br /&gt;
*** Outputs warning of the cache to the system log(Buggy Bazooka GWCs workaround). &lt;br /&gt;
** i|warning|You came back too early (2.3.1.X) &lt;br /&gt;
** i|warning|client|early (2.3.1.X) &lt;br /&gt;
** WARNING: You came back too early (2.3.1.X) &lt;br /&gt;
** ERROR: Client returned too early (2.3.1.X) &lt;br /&gt;
*** Flood detection for the update side. &lt;br /&gt;
*** Outputs GWebCache(update) Too many connection attempts to the system log. &lt;br /&gt;
** too early (2.3.1.X) &lt;br /&gt;
** early (2.4.0.X) &lt;br /&gt;
*** Flood detection for the request side. &lt;br /&gt;
*** Outputs GWebCache URL: Too many connection attempts to the system log. &lt;br /&gt;
** i|update|OK &lt;br /&gt;
*** Outputs &amp;quot;GWebCache(v2) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
** OK &lt;br /&gt;
*** Outputs &amp;quot;GWebCache(v1) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
&lt;br /&gt;
== Gnutella Web Cache Specifications ==&lt;br /&gt;
==== Specification 1: ====&lt;br /&gt;
* &#039;&#039;&#039;Networks Served&#039;&#039;&#039; &lt;br /&gt;
** Gnutella &lt;br /&gt;
* &#039;&#039;&#039;Format&#039;&#039;&#039; &lt;br /&gt;
** Update went fine: &lt;br /&gt;
*** Ex: OK &lt;br /&gt;
** Update Warning (Small prob., not that bad): &lt;br /&gt;
*** Ex: OKWARNING: Error Message &lt;br /&gt;
&lt;br /&gt;
* Severe Warning (No &#039;OK&#039; message sent) &lt;br /&gt;
** Ex: WARNING: Error Message&lt;br /&gt;
&lt;br /&gt;
* URL Output: &lt;br /&gt;
** Ex: [http://somefreakinrandomcache.com/cache/gcache.php http://somefreakinrandomcache.com/cache/gcache.php] &lt;br /&gt;
*** OR - WITH A PORT NUMBER (If not 80) &lt;br /&gt;
**** Ex: [http://somefreakinrandomcache.com:8080/cache/gcache.php http://somefreakinrandomcache.com:8080/cache/gcache.php] &lt;br /&gt;
* Host Output: &lt;br /&gt;
** Ex: 66.132.55.12:6346 &lt;br /&gt;
* Pong (ping variable response) - was explained below under the topic: variables. &lt;br /&gt;
* &#039;&#039;&#039;Example Cache Output (Beacon Cache) For urlfile Command&#039;&#039;&#039; &lt;br /&gt;
** Example &amp;quot;urlfile Output&amp;quot; URL: Ex: [http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;urlfile=1 http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;urlfile=1] &lt;br /&gt;
*** Example URL Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Getting urls with a pong combined&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| PONG Beacon Cache 0.1.5D Beta[http://gwc.frodoslair.net/skulls/skulls.php http://gwc.frodoslair.net/skulls/skulls.php][http://bbs.robertwoolley.co.uk/GWebCache/gcache.php http://bbs.robertwoolley.co.uk/GWebCache/gcache.php][http://g2.tjtech.org/g2/ http://g2.tjtech.org/g2/][http://g2.tjtech.org/g2/index.php http://g2.tjtech.org/g2/index.php][http://gwc.monnsta.net/ http://gwc.monnsta.net/][http://holograph.uni.cc/other/skulls.php http://holograph.uni.cc/other/skulls.php][http://gwc.nickstallman.net/ http://gwc.nickstallman.net/][http://gwc.eod.cc/skulls.php http://gwc.eod.cc/skulls.php][http://gwc.frodoslair.net/skulls/skulls http://gwc.frodoslair.net/skulls/skulls][http://gwc.werwin.net/skulls.php http://gwc.werwin.net/skulls.php] &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
* &#039;&#039;&#039;Example Cache Output (Beacon Cache) For hostfile Command&#039;&#039;&#039; &lt;br /&gt;
** Example &amp;quot;hostfile Output&amp;quot; URL: Ex: [http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;hostfile=1 http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;hostfile=1] &lt;br /&gt;
*** Example Host Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Getting the hosts with a pong combined&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| PONG Beacon Cache 0.1.5D Beta71.8.84.153:391599.248.214.157:2752969.60.241.55:16369193.253.239.246:3021868.156.175.121:634871.179.7.241:1834474.196.22.241:634812.210.197.194:10531222.150.143.77:1000058.85.231.135:634624.141.199.164:2020572.175.201.195:634869.81.129.228:488097.81.221.63:1321970.15.130.224:7759216.211.188.106:5190375.167.168.156:4866012.214.14.3:3591676.177.244.106:2418098.165.218.139:3963068.112.182.125:368568.117.204.57:2348265.12.154.25:4076069.180.47.169:571175.138.40.173:2498798.201.19.0:3366270.187.2.144:634868.186.209.107:1442969.159.7.61:634876.208.176.196:48199&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
* &#039;&#039;&#039;For combining a hostfile and urlfile request:&#039;&#039;&#039; &lt;br /&gt;
** Warning: This is non-standard. &lt;br /&gt;
** &#039;&#039;&#039;Example Cache Output (Beacon Cache) For bfile Command&#039;&#039;&#039; &lt;br /&gt;
*** Example &amp;quot;bfile Output&amp;quot; URL: Ex: [http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;bfile=1 http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;bfile=1] &lt;br /&gt;
**** Example Host and URL Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Getting the hosts and urls with a pong combined&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| PONG Beacon Cache 0.1.5D Beta71.8.84.153:391599.248.214.157:2752969.60.241.55:16369193.253.239.246:3021868.156.175.121:634871.179.7.241:1834474.196.22.241:634812.210.197.194:10531222.150.143.77:1000058.85.231.135:634624.141.199.164:2020572.175.201.195:634869.81.129.228:488097.81.221.63:1321970.15.130.224:7759216.211.188.106:5190375.167.168.156:4866012.214.14.3:3591676.177.244.106:2418098.165.218.139:3963068.112.182.125:368568.117.204.57:2348265.12.154.25:4076069.180.47.169:571175.138.40.173:2498798.201.19.0:3366270.187.2.144:634868.186.209.107:1442969.159.7.61:634876.208.176.196:48199[http://gwc.frodoslair.net/skulls/skulls.php http://gwc.frodoslair.net/skulls/skulls.php][http://bbs.robertwoolley.co.uk/GWebCache/gcache.php http://bbs.robertwoolley.co.uk/GWebCache/gcache.php][http://g2.tjtech.org/g2/ http://g2.tjtech.org/g2/][http://g2.tjtech.org/g2/index.php http://g2.tjtech.org/g2/index.php][http://gwc.monnsta.net/ http://gwc.monnsta.net/][http://holograph.uni.cc/other/skulls.php http://holograph.uni.cc/other/skulls.php][http://gwc.nickstallman.net/ http://gwc.nickstallman.net/][http://gwc.eod.cc/skulls.php http://gwc.eod.cc/skulls.php][http://gwc.frodoslair.net/skulls/skulls http://gwc.frodoslair.net/skulls/skulls][http://gwc.werwin.net/skulls.php http://gwc.werwin.net/skulls.php] &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Variables&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Mandatory&#039;&#039;&#039; &lt;br /&gt;
** ping: &lt;br /&gt;
*** Response should have this always: PONG&lt;br /&gt;
*** After, put the cache&#039;s name. ex: PONG fakecache 0.01&lt;br /&gt;
** client: &lt;br /&gt;
*** Four letter code of the client. ex: RAZA &lt;br /&gt;
** version: &lt;br /&gt;
*** Version number of the client. &lt;br /&gt;
** urlfile: &lt;br /&gt;
*** Used by the client to request alternate cache urls. &lt;br /&gt;
** hostfile: &lt;br /&gt;
*** Used by the client to request IPs with port numbers attached. &lt;br /&gt;
** url: &lt;br /&gt;
*** Client update giving an alternate cache URL. &lt;br /&gt;
*** Formatted with a http:// prefix to each cache. &lt;br /&gt;
** ip: &lt;br /&gt;
*** Client update giving one&#039;s IP to submit. &lt;br /&gt;
** url1: &lt;br /&gt;
*** OLD OUTDATED Client update giving an alternate cache URL. &lt;br /&gt;
*** Formatted with a http:// prefix to each cache. &lt;br /&gt;
** ip1: &lt;br /&gt;
*** OLD OUTDATED Client update giving one&#039;s IP to submit. &lt;br /&gt;
* &#039;&#039;&#039;Optional&#039;&#039;&#039; &lt;br /&gt;
** bfile: &lt;br /&gt;
*** For clients to request both URLs and IPs from the cache at the same time. &lt;br /&gt;
** statfile: &lt;br /&gt;
*** Statistics of the cache request: &lt;br /&gt;
**** First line: Total requests of the cache number. &lt;br /&gt;
**** Second line: Requests of the cache an hour number. &lt;br /&gt;
**** Third line: Updates of the cache an hour number.&lt;br /&gt;
&lt;br /&gt;
==== Specification 2: ====&lt;br /&gt;
&#039;&#039;&#039;Networks Served&#039;&#039;&#039; &lt;br /&gt;
* Gnutella, Gnutella2, etc. &lt;br /&gt;
&#039;&#039;&#039;Format&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Information Output&#039;&#039;&#039; &lt;br /&gt;
** Starts with: I| &lt;br /&gt;
*** &#039;&#039;&#039;Categories&#039;&#039;&#039; &lt;br /&gt;
**** &#039;&#039;&#039;Pong&#039;&#039;&#039; (ping variable response) - Described below under the topic: variables. &lt;br /&gt;
**** &#039;&#039;&#039;Update Status Response&#039;&#039;&#039; &lt;br /&gt;
***** Format: I|update &lt;br /&gt;
***** &#039;&#039;&#039;Responses&#039;&#039;&#039; &lt;br /&gt;
****** I|update|OK &lt;br /&gt;
******* - Everything went fine. &lt;br /&gt;
****** I|update|OK|WARNING &lt;br /&gt;
******* Small warning. &lt;br /&gt;
****** I|update|WARNING &lt;br /&gt;
******* Severe warning &lt;br /&gt;
**** &#039;&#039;&#039;Plain Warnings&#039;&#039;&#039; &lt;br /&gt;
***** Format: I|WARNING &lt;br /&gt;
****** Append any warning messages after it - Ex: I|WARNING|You came back too early &lt;br /&gt;
**** &#039;&#039;&#039;Extra Info&#039;&#039;&#039; - Described below under the topic: variables. &lt;br /&gt;
* &#039;&#039;&#039;Host Output&#039;&#039;&#039; &lt;br /&gt;
** Starts with: H| &lt;br /&gt;
** Add the IP with its port: &lt;br /&gt;
*** Ex: H|0.0.0.0:6346 &lt;br /&gt;
** Add the time, thereafter, of the host&#039;s (In seconds*) time in cache: &lt;br /&gt;
*** Ex: H|0.0.0.0:6346|45 &lt;br /&gt;
** If cluster exists with cluster=somerandomwords &lt;br /&gt;
*** Add the clustered words after the host&#039;s age: &lt;br /&gt;
**** Ex: H|0.0.0.0:6346|45|somerandomwords &lt;br /&gt;
* &#039;&#039;&#039;URL Output&#039;&#039;&#039; &lt;br /&gt;
** Starts with: U| &lt;br /&gt;
** Add the URL with http:// before it, plus the port (if it&#039;s not 80). &lt;br /&gt;
*** Ex: U|[http://somerandomcache.com/ http://somerandomcache.com/] &lt;br /&gt;
** Add the time, thereafter, of the URL&#039;s time (In seconds*) in cache: &lt;br /&gt;
*** Ex: U|[http://somerandomcache.com/%7C45 http://somerandomcache.com/|45] &lt;br /&gt;
* &#039;&#039;&#039;Example Cache Output (Beacon Cache) For get Command&#039;&#039;&#039; &lt;br /&gt;
** Example URL: [http://grantgalitz.com/Beacon/gwc.php?get=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;net=gnutella2&amp;amp;ping=1 http://grantgalitz.com/Beacon/gwc.php?get=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;net=gnutella2&amp;amp;ping=1] &lt;br /&gt;
*** Example &amp;quot;Get&amp;quot; Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Getting the hosts and urls with a pong combined&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| I|pong|Beacon Cache 0.1.5D Beta|gnutella-gnutella2H|65.9.200.243:4968|248261H|68.228.129.75:44599|242678H|98.240.196.122:8206|240719H|76.104.12.133:14921|218273H|69.136.1.12:3924|211610H|81.154.208.71:8595|174402H|97.96.105.51:2076|153610H|74.192.153.212:39340|144203H|72.190.106.57:12584|132984H|78.93.71.132:12334|125668H|82.43.248.184:27560|97974H|196.205.224.97:6357|86763H|74.129.219.30:33172|82005H|76.104.12.133:19185|57182H|69.59.83.131:18442|38628U|[http://www.k33bz.com/g2/bazooka.php%7C248639 http://www.k33bz.com/g2/bazooka.php|248639]U|[http://gwebcache.ns1.net/%7C248592 http://gwebcache.ns1.net/|248592]U|[http://gwc2.wodi.org/skulls.php%7C248384 http://gwc2.wodi.org/skulls.php|248384]U|[http://gwc.guufshop.com/skulls/skulls.php%7C248322 http://gwc.guufshop.com/skulls/skulls.php|248322]U|[http://groovy.syxy.com/up/skulls.php%7C248300 http://groovy.syxy.com/up/skulls.php|248300]U|[http://g2.tjtech.org/g2/index.php%7C247770 http://g2.tjtech.org/g2/index.php|247770]U|[http://midian.jayl.de/g2/bazooka.php%7C240719 http://midian.jayl.de/g2/bazooka.php|240719]U|[http://www.dom2porno.info/skulls/skulls.php%7C207473 http://www.dom2porno.info/skulls/skulls.php|207473]U|[http://gwc.frodoslair.net/skulls/skulls%7C125668 http://gwc.frodoslair.net/skulls/skulls|125668]U|[http://holograph.uni.cc/other/skulls.php%7C9642 http://holograph.uni.cc/other/skulls.php|9642] &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Variables&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Mandatory&#039;&#039;&#039; &lt;br /&gt;
** ping: &lt;br /&gt;
*** Main Part: I|pong| &lt;br /&gt;
*** Then add the cache name and version: I|pong|fakecache 0.01 &lt;br /&gt;
*** Then lastly add the network support: &lt;br /&gt;
**** I|pong|fakecache 0.01|gnutella &lt;br /&gt;
***** - Gnutella only &lt;br /&gt;
**** I|pong|fakecache 0.01|gnutella2 &lt;br /&gt;
***** - Gnutella2 only &lt;br /&gt;
**** I|pong|fakecache 0.01|gnutella-gnutella2 &lt;br /&gt;
***** - Gnutella and Gnutella2 served &lt;br /&gt;
** get: &lt;br /&gt;
*** Used by clients to requests alternate cache URLs along with IPs and their port numbers. &lt;br /&gt;
** update: &lt;br /&gt;
*** url: &lt;br /&gt;
**** Client update giving an alternate cache URL. &lt;br /&gt;
**** Formatted with a http:// prefix to each cache. &lt;br /&gt;
*** ip: &lt;br /&gt;
**** Client update giving one&#039;s IP to submit. &lt;br /&gt;
** net: &lt;br /&gt;
*** Which network to serve the client. &lt;br /&gt;
**** Gnutella &lt;br /&gt;
***** Ex: net=gnutella &lt;br /&gt;
**** Gnutella2 &lt;br /&gt;
***** Ex: net=gnutella2 &lt;br /&gt;
**** &#039;&#039;&#039;Should always be lowercase&#039;&#039;&#039; &lt;br /&gt;
***** GWCs should automatically convert network name given to lowercase to prevent Net ID mismatches &lt;br /&gt;
&lt;br /&gt;
solely on case alone. &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
* &lt;br /&gt;
** client: &lt;br /&gt;
*** Four letter code of the client. ex: RAZA &lt;br /&gt;
** version: &lt;br /&gt;
*** Version number of the client. &lt;br /&gt;
* &#039;&#039;&#039;Optional&#039;&#039;&#039; &lt;br /&gt;
** cluster: &lt;br /&gt;
*** To add extra info to an IP update. &lt;br /&gt;
**** Output by cache: H|0.0.0.0|AGE OF HOST (Seconds)|clustering some bull**** &lt;br /&gt;
** statfile: &lt;br /&gt;
*** Exactly like the specification 1 statfile &#039;&#039;&#039;(Same routine and output style)&#039;&#039;&#039;. &lt;br /&gt;
*** Statistics of the cache request: &lt;br /&gt;
**** First line: Total requests of the cache number. &lt;br /&gt;
**** Second line: Requests of the cache an hour number. &lt;br /&gt;
**** Third line: Updates of the cache an hour number. &lt;br /&gt;
&lt;br /&gt;
==== Specification 2.1 ====&lt;br /&gt;
&#039;&#039;&#039;This is an extension of specification 2, not a separate specification!&#039;&#039;&#039; &lt;br /&gt;
Pong extension &lt;br /&gt;
* Append the networks supported joined by a hyphen &#039;-&#039;. &lt;br /&gt;
* Used for client-side validation of networks supported and for network support reporting to other web caches. &lt;br /&gt;
* Format: &lt;br /&gt;
** I|pong|cache name|network names joined by &#039;-&#039; &lt;br /&gt;
** Format Examples: &lt;br /&gt;
*** I|pong|fakecache 0.01|gnutella &lt;br /&gt;
**** - Gnutella only &lt;br /&gt;
*** I|pong|fakecache 0.01|gnutella2 &lt;br /&gt;
**** - Gnutella2 only &lt;br /&gt;
*** I|pong|fakecache 0.01|gnutella-gnutella2 &lt;br /&gt;
**** - Gnutella and Gnutella2 served &lt;br /&gt;
Host Output &lt;br /&gt;
* Just like specification 2, but with more fields supported for host output. &lt;br /&gt;
** H|ip:port|age in cache|clustering|leaves|4 letter vendor code|reported uptime of host|max. leaves possible &lt;br /&gt;
*** The host, age, and clustering fields are all still the same as in specification 2. &lt;br /&gt;
*** The leaf count of the hub reported is in the 5th field. &lt;br /&gt;
*** The vendor code with version number is in the 6th field. &lt;br /&gt;
Request Control Variables: &lt;br /&gt;
* getleaves &lt;br /&gt;
** Used to obtain leaf counts of hubs given &lt;br /&gt;
** 4th field ultilized for current leaf count. &lt;br /&gt;
** 7th field ultilized for maximum leaf slots possible. &lt;br /&gt;
** Use this as &#039;getleaves=1&#039; or &#039;getleaves&#039; to enable. &lt;br /&gt;
* getclusters &lt;br /&gt;
** Enables/Disables clustering. &lt;br /&gt;
** Use this as &#039;getclusters=1&#039;. &lt;br /&gt;
** Using &#039;getclusters&#039; or &#039;getclusters=0&#039; disables cluster output. &lt;br /&gt;
* getvendors &lt;br /&gt;
** Used to obtain the vendor code w/ version number of the hubs given. &lt;br /&gt;
** Found in the 5th field. &lt;br /&gt;
** Use this as &#039;getvendors=1&#039; or &#039;getvendors&#039; to enable. &lt;br /&gt;
* getuptime &lt;br /&gt;
** Used to obtain the vendor code w/ version number of the hubs given. &lt;br /&gt;
** Value is static, do not change the value given when time passes. &lt;br /&gt;
** Found in the 6th field. &lt;br /&gt;
** Use this as &#039;getuptime=1&#039; or &#039;getuptime&#039; to enable. &lt;br /&gt;
* spec &lt;br /&gt;
** To force the specification parameter &lt;br /&gt;
** Currently is only supported by Beacon Cache II &lt;br /&gt;
* pv &lt;br /&gt;
** Similar to the &#039;spec&#039; parameter, except that it does not force, instead it simply negotiates the specification. &lt;br /&gt;
Special Data Requests &lt;br /&gt;
* info &lt;br /&gt;
** Outputs extra details of your cache. &lt;br /&gt;
*** Start with the informational response: I| &lt;br /&gt;
**** Ex: I|open-source|1 &lt;br /&gt;
* support &lt;br /&gt;
** Outputs USEFUL details of your cache. &lt;br /&gt;
*** Start with the informational response: I| &lt;br /&gt;
**** Ex: I|support|gnutella2 &lt;br /&gt;
* getnetworks &lt;br /&gt;
** Outputs the enabled networks in two formats. &lt;br /&gt;
*** Start with the informational response: I| &lt;br /&gt;
**** For the &#039;I|nets|&#039; line &lt;br /&gt;
***** The third field contains the supported networks joined by &#039;-&#039;. &lt;br /&gt;
**** For the &#039;I|networks|&#039; line &lt;br /&gt;
***** Interpret the fields from 3 and beyond as individual network names to challenge against. &lt;br /&gt;
*** Examples &lt;br /&gt;
**** &lt;br /&gt;
***** I|nets|gnutella-gnutella2 &lt;br /&gt;
***** I|networks|gnutella|gnutella2 &lt;br /&gt;
Update Extension Variables: &lt;br /&gt;
* x_leaves &lt;br /&gt;
** Number of leaves running on a given hub or ultrapeer. &lt;br /&gt;
** &#039;&#039;&#039;Value must not be greater than an integer value of 2047.&#039;&#039;&#039; &lt;br /&gt;
** &#039;&#039;&#039;Note: It is important to know that PHP automaticaly replace dots with underscores, so to keep compatibility with old/new version of clients all caches should support both variants, example: x.leaves x_leaves&#039;&#039;&#039; &lt;br /&gt;
* x_max &lt;br /&gt;
** Maximum number of leaves possible on a given hub or ultrapeer. &lt;br /&gt;
** &#039;&#039;&#039;Value must not be greater than an integer value of 2047.&#039;&#039;&#039; &lt;br /&gt;
* uptime &lt;br /&gt;
** Value submitted must be an integer value of the number of seconds of uptime. &lt;br /&gt;
** &#039;&#039;&#039;Value must not be greater than an integer value of 1 year (31536000) and less than 1 hour (60).&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== Pinging Caches With Your Cache ===&lt;br /&gt;
&#039;&#039;&#039;Please follow this standard:&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Client: TEST&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Version: Your Cache&#039;s Name&#039;&#039;&#039; &lt;br /&gt;
** The old value for &amp;quot;version&amp;quot; was 1 &lt;br /&gt;
&#039;&#039;&#039;Some variables to attach to the ping (compatibility):&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;multi&#039;&#039;&#039; &lt;br /&gt;
** Used by some gwcs in their pings to other gwcs. &lt;br /&gt;
** &amp;lt;nowiki&amp;gt;It tells the pinged cache to ignore the &amp;quot;net&amp;quot; parameter (so it should never say network not supported) and outputting the pong using this format, if possible, &amp;quot;I|pong|[cache name] [cache version]|[supported networks list]&amp;quot; - example: I|pong|Skulls 0.2.9|gnutella-gnutella2 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
** Used by Skulls GWC only, supported by Skulls and Beacon Cache II. &lt;br /&gt;
* &#039;&#039;&#039;cache&#039;&#039;&#039; &lt;br /&gt;
** This is added to every request made by some gwcs, it is for statistical purposes only. &lt;br /&gt;
** It simply tells the remote cache that the client is a GWC. &lt;br /&gt;
&#039;&#039;&#039;Help&#039;&#039;&#039; &lt;br /&gt;
* For PHP &lt;br /&gt;
** Use the fsockopen() function to open a connection to a cache. &lt;br /&gt;
*** Make sure you &amp;quot;write&amp;quot; to the fsockopen carry value to open the GWC&#039;s target file. &lt;br /&gt;
**** [http://us.php.net/manual/en/function.fsockopen.php http://us.php.net/manual/en/function.fsockopen.php] &lt;br /&gt;
&lt;br /&gt;
=== Variable Combination Standards ===&lt;br /&gt;
&#039;&#039;&#039;Net variable decides specification!&#039;&#039;&#039; &lt;br /&gt;
* There are many ways to determine spec., but going with net is the safe way. &lt;br /&gt;
* Skulls GWC does not use the network parameter to determine specification level. &lt;br /&gt;
* Beacon Cache (I and II) uses the network parameter to determine the specification level. &lt;br /&gt;
&#039;&#039;&#039;Your cache needs to be able to process certain combinations of variables.&#039;&#039;&#039; &lt;br /&gt;
* Update variable &lt;br /&gt;
** Update should not fail if absent if spec. 2. &lt;br /&gt;
*** A Specification 2 parameter. &lt;br /&gt;
Spec 1 parameters used in Spec 2: &lt;br /&gt;
* Should still accept hostfile and urlfile responses for spec. 2. &lt;br /&gt;
** Beacon Cache (I and II) accepts these parameters on spec 2. &lt;br /&gt;
The &#039;spec&#039; paameter can be used to force a specification: &lt;br /&gt;
* Only known to exist in Beacon Cache II, it can force the request to be handled as a specification 1 or 2 request. &lt;br /&gt;
* Spec 1 = &#039;spec=1&#039; &lt;br /&gt;
* Spec 2 = &#039;spec=2&#039; &lt;br /&gt;
* If &#039;spec&#039; is not equal to any current spec, then default to the predetermined spec. &lt;br /&gt;
&#039;&#039;&#039;Multiple variable requests&#039;&#039;&#039; &lt;br /&gt;
* If for instance a ping and request exist, you should always handle them properly. &lt;br /&gt;
** Same goes with other combos like an update and ping, statfile + ping and info. &lt;br /&gt;
* Handle multiple variables as BEST as possible! &lt;br /&gt;
** Some scanners and GWCs like to fit all their requests into one URL send. &lt;br /&gt;
&lt;br /&gt;
=== Further Information: ===&lt;br /&gt;
* [http://www.gnucleus.com/gwebcache/ Original GWC] [http://www.gnucleus.com/gwebcache/ site] &lt;br /&gt;
** [http://gnucleus.sourceforge.net/gwebcache/specs.html GWC Spec. 1] &lt;br /&gt;
** [http://gnucleus.sourceforge.net/gwebcache/newgwc.html GWC Spec. 2] &lt;br /&gt;
&lt;br /&gt;
=== Gnutella Web Cache ===&lt;br /&gt;
Gnutella requires Gnutella Web Caches (GWC) to get IPs to establish a connection to the network.  These are critical to ensuring the health of the network.  If you have a dedicated server and can spare some extra bandwidth then please consider running a GWC.  People that don&#039;t have a dedicated server or are on normal broadband consumer lines should not run a cache from home.&lt;br /&gt;
&lt;br /&gt;
A GWC is a simple script that can be put on any webserver that supports one of the following scripting languages:&lt;br /&gt;
*JSP (Java Servlet)&lt;br /&gt;
**[http://web.archive.org/web/20061108091447/http://www.mager.org/GWebCache/ Java Servlet GWebCache Application (Archive.org)]&lt;br /&gt;
*C&lt;br /&gt;
**[http://ghostwhitecrab.com/crab/ GhostWhiteCrab]&lt;br /&gt;
*Perl &lt;br /&gt;
**[http://www.jonatkins.com/perlgcache/ Jon Atkins&#039; perlgcache] &lt;br /&gt;
**The original [http://www.gnucleus.com/gwebcache/dist/ GnuWebCache]&lt;br /&gt;
*PHP &lt;br /&gt;
**[http://gwcii.sourceforge.net/ PHPGnuCacheII] - MySQL&lt;br /&gt;
**[http://www.bazookanetworks.com Bazooka G2WC] (recommended) - flat files&lt;br /&gt;
**[http://sourceforge.net/projects/skulls/ Skulls! Multi-Network WebCache] - flat files&lt;br /&gt;
====Further Information:====&lt;br /&gt;
*[http://www.gnucleus.com/gwebcache/|Original GWC site]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{RecoveredPage|--&amp;gt;Saved in timestamp 20090421202728Retrieved from &amp;quot;[https://www.pantheraproject.net/wiki/index.php?title=GWC This page was last modified on April 18, 2009, at 23:25. &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;Copyright © 2002-2009 Shareaza Development Team. &amp;lt;/center&amp;gt;&amp;lt;center&amp;gt;[[Image:poweredby_mediawiki_88x31.png]] --[[User:Ocexyz|Ocexyz]] 16:20, 27 July 2009 (UTC)}}&lt;br /&gt;
&lt;br /&gt;
{{RecoveredPage|Warninig: here ends pasted better formatted recovery. Row recovery has been mooved below as I don&#039;t know if anybody has made any changes in it. If not then row recovery can be deleted I suppose. Paste starts from == Shareaza Specific Details == and ends at second == Shareaza Specific Details ==, here. I hope it is visible.  --[[User:Ocexyz|Ocexyz]] 16:20, 27 July 2009 (UTC)  }}&lt;br /&gt;
&lt;br /&gt;
==Shareaza Specific Details==&lt;br /&gt;
&lt;br /&gt;
{{RecoveredPage|Warninig: here ends pasted better formatted recovery. Row recovery has been mooved below as I don&#039;t know if anybody has made any changes in it. If not then row recovery can be deleted I suppose. Paste starts from &amp;gt;&amp;gt;Shareaza Specific Details&amp;lt;&amp;lt; and ends at second &amp;gt;&amp;gt; Shareaza Specific Details&amp;lt;&amp;lt;, here. I hope it is visible.  --[[User:Ocexyz|Ocexyz]] 23:27, 27 July 2009 (UTC)  }}&lt;br /&gt;
&lt;br /&gt;
* Get String Breakdown:&lt;br /&gt;
          o Update a leaf&lt;br /&gt;
                + &amp;quot;?update=1&amp;amp;ip=(ip):(port)&amp;amp;x_leaves=(leaf count) &lt;br /&gt;
          o Ping Variable&lt;br /&gt;
                + Appends &amp;amp;ping=1 to identify the cache name in debug messages (for gnutella and gnutella2 in 2.4.0.0, but only for gnutella2 now in 2.4.0.X for spec1 cache compatibility).&lt;br /&gt;
                + This feature new to Shareaza. &lt;br /&gt;
          o Network Variable&lt;br /&gt;
                + Appends &amp;amp;net=gnutella2 on Gnutella2 queries.&lt;br /&gt;
                + Does NOT append a network variable on Gnutella(1) queries. &lt;br /&gt;
          o Client Name / Version Format (2.4.0.0 and earlier):&lt;br /&gt;
                + &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) )&lt;br /&gt;
                + &amp;amp;version=(Shareaza&#039;s version) &lt;br /&gt;
          o Client Name / Version Format (2.4.0.X):&lt;br /&gt;
                + If Gnutella&lt;br /&gt;
                      # &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) )&lt;br /&gt;
                      # &amp;amp;version=(Shareaza&#039;s version) &lt;br /&gt;
                + If Gnutella2&lt;br /&gt;
                      # &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) )+(Shareaza&#039;s version) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* GWC Response Matching:&lt;br /&gt;
          o i|&lt;br /&gt;
                + Informational output alone will not be taken as GWC &#039;success.&#039; &lt;br /&gt;
          o i|access|period|(time in sec.)&lt;br /&gt;
                + Time in seconds before Shareaza is allowed to make a request to the cache. &lt;br /&gt;
          o i|update|period|(time in sec.)&lt;br /&gt;
                + Time in seconds before Shareaza is allowed to update to the cache. &lt;br /&gt;
          o i|force|remove and i|update|warning|bad url&lt;br /&gt;
                + Remove the GWC from the internal list. &lt;br /&gt;
          o Some Response Matches (added in 2.3.1.X)&lt;br /&gt;
                + i|NO-URL-NO-HOSTS&lt;br /&gt;
                      # Outputs warning of the cache being totally empty to the system log. &lt;br /&gt;
                + i|NO-URL&lt;br /&gt;
                      # Outputs warning of the cache having no alternative URLs to the system log. &lt;br /&gt;
                + i|NO-HOSTS&lt;br /&gt;
                      # Outputs warning of the cache having no hosts to the system log. &lt;br /&gt;
                + i|warning|&lt;br /&gt;
                      # Outputs warning of the cache to the system log. &lt;br /&gt;
                + ERROR Something Failed&lt;br /&gt;
                      # Outputs warning of the cache to the system log(Buggy Bazooka GWCs workaround). &lt;br /&gt;
                + i|warning|You came back too early (2.3.1.X)&lt;br /&gt;
                + i|warning|client|early (2.3.1.X)&lt;br /&gt;
                + WARNING: You came back too early (2.3.1.X)&lt;br /&gt;
                + ERROR: Client returned too early (2.3.1.X)&lt;br /&gt;
                      # Flood detection for the update side.&lt;br /&gt;
                      # Outputs GWebCache(update) Too many connection attempts to the system log. &lt;br /&gt;
                + too early (2.3.1.X)&lt;br /&gt;
                + early (2.4.0.X)&lt;br /&gt;
                      # Flood detection for the request side.&lt;br /&gt;
                      # Outputs GWebCache URL: Too many connection attempts to the system log. &lt;br /&gt;
                + i|update|OK&lt;br /&gt;
                      # Outputs &amp;quot;GWebCache(v2) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
                + OK&lt;br /&gt;
                      # Outputs &amp;quot;GWebCache(v1) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* GWC Response Matching:&lt;br /&gt;
          o i|&lt;br /&gt;
                + Informational output alone will not be taken as GWC &#039;success.&#039; &lt;br /&gt;
          o i|access|period|(time in sec.)&lt;br /&gt;
                + Time in seconds before Shareaza is allowed to make a request to the cache. &lt;br /&gt;
          o i|update|period|(time in sec.)&lt;br /&gt;
                + Time in seconds before Shareaza is allowed to update to the cache. &lt;br /&gt;
          o i|force|remove and i|update|warning|bad url&lt;br /&gt;
                + Remove the GWC from the internal list. &lt;br /&gt;
          o Some Response Matches (added in 2.3.1.X)&lt;br /&gt;
                + i|NO-URL-NO-HOSTS&lt;br /&gt;
                      # Outputs warning of the cache being totally empty to the system log. &lt;br /&gt;
                + i|NO-URL&lt;br /&gt;
                      # Outputs warning of the cache having no alternative URLs to the system log. &lt;br /&gt;
                + i|NO-HOSTS&lt;br /&gt;
                      # Outputs warning of the cache having no hosts to the system log. &lt;br /&gt;
                + i|warning|&lt;br /&gt;
                      # Outputs warning of the cache to the system log. &lt;br /&gt;
                + ERROR Something Failed&lt;br /&gt;
                      # Outputs warning of the cache to the system log(Buggy Bazooka GWCs workaround). &lt;br /&gt;
                + i|warning|You came back too early (2.3.1.X)&lt;br /&gt;
                + i|warning|client|early (2.3.1.X)&lt;br /&gt;
                + WARNING: You came back too early (2.3.1.X)&lt;br /&gt;
                + ERROR: Client returned too early (2.3.1.X)&lt;br /&gt;
                      # Flood detection for the update side.&lt;br /&gt;
                      # Outputs GWebCache(update) Too many connection attempts to the system log. &lt;br /&gt;
                + too early (2.3.1.X)&lt;br /&gt;
                + early (2.4.0.X)&lt;br /&gt;
                      # Flood detection for the request side.&lt;br /&gt;
                      # Outputs GWebCache URL: Too many connection attempts to the system log. &lt;br /&gt;
                + i|update|OK&lt;br /&gt;
                      # Outputs &amp;quot;GWebCache(v2) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
                + OK&lt;br /&gt;
                      # Outputs &amp;quot;GWebCache(v1) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Gnutella Web Cache Specifications==&lt;br /&gt;
&amp;lt;end of partial recovery by OCE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;end of recovered content&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;row recovery, start&amp;gt; &lt;br /&gt;
 Specification 1:&lt;br /&gt;
&lt;br /&gt;
    * Networks Served&lt;br /&gt;
          o Gnutella &lt;br /&gt;
    * Format&lt;br /&gt;
          o Update went fine:&lt;br /&gt;
                + Ex: OK &lt;br /&gt;
          o Update Warning (Small prob., not that bad):&lt;br /&gt;
                + Ex: &lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
WARNING: Error Message&lt;br /&gt;
&lt;br /&gt;
    * Severe Warning (No &#039;OK&#039; message sent)&lt;br /&gt;
          o Ex: &lt;br /&gt;
&lt;br /&gt;
WARNING: Error Message&lt;br /&gt;
&lt;br /&gt;
    * URL Output:&lt;br /&gt;
          o Ex: http://somefreakinrandomcache.com/cache/gcache.php&lt;br /&gt;
                + OR - WITH A PORT NUMBER (If not 80)&lt;br /&gt;
                      # Ex: http://somefreakinrandomcache.com:8080/cache/gcache.php &lt;br /&gt;
    * Host Output:&lt;br /&gt;
          o Ex: 66.132.55.12:6346 &lt;br /&gt;
    * Pong (ping variable response) - was explained below under the topic: variables.&lt;br /&gt;
    * Example Cache Output (Beacon Cache) For urlfile Command&lt;br /&gt;
          o Example &amp;quot;urlfile Output&amp;quot; URL: Ex: http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;urlfile=1&lt;br /&gt;
                + Example URL Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting urls with a pong combined&lt;br /&gt;
&lt;br /&gt;
PONG Beacon Cache 0.1.5D Beta&lt;br /&gt;
http://gwc.frodoslair.net/skulls/skulls.php&lt;br /&gt;
http://bbs.robertwoolley.co.uk/GWebCache/gcache.php&lt;br /&gt;
http://g2.tjtech.org/g2/&lt;br /&gt;
http://g2.tjtech.org/g2/index.php&lt;br /&gt;
http://gwc.monnsta.net/&lt;br /&gt;
http://holograph.uni.cc/other/skulls.php&lt;br /&gt;
http://gwc.nickstallman.net/&lt;br /&gt;
http://gwc.eod.cc/skulls.php&lt;br /&gt;
http://gwc.frodoslair.net/skulls/skulls&lt;br /&gt;
http://gwc.werwin.net/skulls.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * Example Cache Output (Beacon Cache) For hostfile Command&lt;br /&gt;
          o Example &amp;quot;hostfile Output&amp;quot; URL: Ex: http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;hostfile=1&lt;br /&gt;
                + Example Host Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting the hosts with a pong combined&lt;br /&gt;
&lt;br /&gt;
PONG Beacon Cache 0.1.5D Beta&lt;br /&gt;
71.8.84.153:3915&lt;br /&gt;
99.248.214.157:27529&lt;br /&gt;
69.60.241.55:16369&lt;br /&gt;
193.253.239.246:30218&lt;br /&gt;
68.156.175.121:6348&lt;br /&gt;
71.179.7.241:18344&lt;br /&gt;
74.196.22.241:6348&lt;br /&gt;
12.210.197.194:10531&lt;br /&gt;
222.150.143.77:10000&lt;br /&gt;
58.85.231.135:6346&lt;br /&gt;
24.141.199.164:20205&lt;br /&gt;
72.175.201.195:6348&lt;br /&gt;
69.81.129.228:4880&lt;br /&gt;
97.81.221.63:13219&lt;br /&gt;
70.15.130.224:7759&lt;br /&gt;
216.211.188.106:51903&lt;br /&gt;
75.167.168.156:48660&lt;br /&gt;
12.214.14.3:35916&lt;br /&gt;
76.177.244.106:24180&lt;br /&gt;
98.165.218.139:39630&lt;br /&gt;
68.112.182.125:3685&lt;br /&gt;
68.117.204.57:23482&lt;br /&gt;
65.12.154.25:40760&lt;br /&gt;
69.180.47.169:5711&lt;br /&gt;
75.138.40.173:24987&lt;br /&gt;
98.201.19.0:33662&lt;br /&gt;
70.187.2.144:6348&lt;br /&gt;
68.186.209.107:14429&lt;br /&gt;
69.159.7.61:6348&lt;br /&gt;
76.208.176.196:48199&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * For combining a hostfile and urlfile request:&lt;br /&gt;
          o Warning: This is non-standard.&lt;br /&gt;
          o Example Cache Output (Beacon Cache) For bfile Command&lt;br /&gt;
                + Example &amp;quot;bfile Output&amp;quot; URL: Ex: http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;bfile=1&lt;br /&gt;
                      # Example Host and URL Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting the hosts and urls with a pong combined&lt;br /&gt;
&lt;br /&gt;
PONG Beacon Cache 0.1.5D Beta&lt;br /&gt;
71.8.84.153:3915&lt;br /&gt;
99.248.214.157:27529&lt;br /&gt;
69.60.241.55:16369&lt;br /&gt;
193.253.239.246:30218&lt;br /&gt;
68.156.175.121:6348&lt;br /&gt;
71.179.7.241:18344&lt;br /&gt;
74.196.22.241:6348&lt;br /&gt;
12.210.197.194:10531&lt;br /&gt;
222.150.143.77:10000&lt;br /&gt;
58.85.231.135:6346&lt;br /&gt;
24.141.199.164:20205&lt;br /&gt;
72.175.201.195:6348&lt;br /&gt;
69.81.129.228:4880&lt;br /&gt;
97.81.221.63:13219&lt;br /&gt;
70.15.130.224:7759&lt;br /&gt;
216.211.188.106:51903&lt;br /&gt;
75.167.168.156:48660&lt;br /&gt;
12.214.14.3:35916&lt;br /&gt;
76.177.244.106:24180&lt;br /&gt;
98.165.218.139:39630&lt;br /&gt;
68.112.182.125:3685&lt;br /&gt;
68.117.204.57:23482&lt;br /&gt;
65.12.154.25:40760&lt;br /&gt;
69.180.47.169:5711&lt;br /&gt;
75.138.40.173:24987&lt;br /&gt;
98.201.19.0:33662&lt;br /&gt;
70.187.2.144:6348&lt;br /&gt;
68.186.209.107:14429&lt;br /&gt;
69.159.7.61:6348&lt;br /&gt;
76.208.176.196:48199&lt;br /&gt;
http://gwc.frodoslair.net/skulls/skulls.php&lt;br /&gt;
http://bbs.robertwoolley.co.uk/GWebCache/gcache.php&lt;br /&gt;
http://g2.tjtech.org/g2/&lt;br /&gt;
http://g2.tjtech.org/g2/index.php&lt;br /&gt;
http://gwc.monnsta.net/&lt;br /&gt;
http://holograph.uni.cc/other/skulls.php&lt;br /&gt;
http://gwc.nickstallman.net/&lt;br /&gt;
http://gwc.eod.cc/skulls.php&lt;br /&gt;
http://gwc.frodoslair.net/skulls/skulls&lt;br /&gt;
http://gwc.werwin.net/skulls.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * Variables&lt;br /&gt;
          o Mandatory&lt;br /&gt;
                + ping:&lt;br /&gt;
                      # Response should have this always: PONG&lt;br /&gt;
                      # After, put the cache&#039;s name. ex: PONG fakecache 0.01&lt;br /&gt;
                + client:&lt;br /&gt;
                      # Four letter code of the client. ex: RAZA &lt;br /&gt;
                + version:&lt;br /&gt;
                      # Version number of the client. &lt;br /&gt;
                + urlfile:&lt;br /&gt;
                      # Used by the client to request alternate cache urls. &lt;br /&gt;
                + hostfile:&lt;br /&gt;
                      # Used by the client to request IPs with port numbers attached. &lt;br /&gt;
                + url:&lt;br /&gt;
                      # Client update giving an alternate cache URL.&lt;br /&gt;
                      # Formatted with a http:// prefix to each cache. &lt;br /&gt;
                + ip:&lt;br /&gt;
                      # Client update giving one&#039;s IP to submit. &lt;br /&gt;
                + url1:&lt;br /&gt;
                      # OLD OUTDATED Client update giving an alternate cache URL.&lt;br /&gt;
                      # Formatted with a http:// prefix to each cache. &lt;br /&gt;
                + ip1:&lt;br /&gt;
                      # OLD OUTDATED Client update giving one&#039;s IP to submit. &lt;br /&gt;
          o Optional&lt;br /&gt;
                + bfile:&lt;br /&gt;
                      # For clients to request both URLs and IPs from the cache at the same time. &lt;br /&gt;
                + statfile:&lt;br /&gt;
                      # Statistics of the cache request:&lt;br /&gt;
                            * First line: Total requests of the cache number.&lt;br /&gt;
                            * Second line: Requests of the cache an hour number.&lt;br /&gt;
                            * Third line: Updates of the cache an hour number. &lt;br /&gt;
&lt;br /&gt;
Specification 2:&lt;br /&gt;
&lt;br /&gt;
    * Networks Served&lt;br /&gt;
          o Gnutella, Gnutella2, etc. &lt;br /&gt;
    * Format&lt;br /&gt;
          o Information Output&lt;br /&gt;
                + Starts with: I|&lt;br /&gt;
                      # Categories&lt;br /&gt;
                            * Pong (ping variable response) - Described below under the topic: variables.&lt;br /&gt;
                            * Update Status Response&lt;br /&gt;
                                  o Format: I|update&lt;br /&gt;
                                  o Responses&lt;br /&gt;
                                        + I|update|OK&lt;br /&gt;
                                              # - Everything went fine. &lt;br /&gt;
                                        + I|update|OK|WARNING&lt;br /&gt;
                                              # Small warning. &lt;br /&gt;
                                        + I|update|WARNING&lt;br /&gt;
                                              # Severe warning &lt;br /&gt;
                            * Plain Warnings&lt;br /&gt;
                                  o Format: I|WARNING&lt;br /&gt;
                                        + Append any warning messages after it - Ex: I|WARNING|You came back too early &lt;br /&gt;
                            * Extra Info - Described below under the topic: variables. &lt;br /&gt;
          o Host Output&lt;br /&gt;
                + Starts with: H|&lt;br /&gt;
                + Add the IP with its port:&lt;br /&gt;
                      # Ex: H|0.0.0.0:6346 &lt;br /&gt;
                + Add the time, thereafter, of the host&#039;s (In seconds*) time in cache:&lt;br /&gt;
                      # Ex: H|0.0.0.0:6346|45 &lt;br /&gt;
                + If cluster exists with cluster=somerandomwords&lt;br /&gt;
                      # Add the clustered words after the host&#039;s age:&lt;br /&gt;
                            * Ex: H|0.0.0.0:6346|45|somerandomwords &lt;br /&gt;
          o URL Output&lt;br /&gt;
                + Starts with: U|&lt;br /&gt;
                + Add the URL with http:// before it, plus the port (if it&#039;s not 80).&lt;br /&gt;
                      # Ex: U|http://somerandomcache.com/ &lt;br /&gt;
                + Add the time, thereafter, of the URL&#039;s time (In seconds*) in cache:&lt;br /&gt;
                      # Ex: U|http://somerandomcache.com/|45 &lt;br /&gt;
          o Example Cache Output (Beacon Cache) For get Command&lt;br /&gt;
                + Example URL: http://grantgalitz.com/Beacon/gwc.php?get=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;net=gnutella2&amp;amp;ping=1&lt;br /&gt;
                      # Example &amp;quot;Get&amp;quot; Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting the hosts and urls with a pong combined&lt;br /&gt;
&lt;br /&gt;
I|pong|Beacon Cache 0.1.5D Beta|gnutella-gnutella2&lt;br /&gt;
H|65.9.200.243:4968|248261&lt;br /&gt;
H|68.228.129.75:44599|242678&lt;br /&gt;
H|98.240.196.122:8206|240719&lt;br /&gt;
H|76.104.12.133:14921|218273&lt;br /&gt;
H|69.136.1.12:3924|211610&lt;br /&gt;
H|81.154.208.71:8595|174402&lt;br /&gt;
H|97.96.105.51:2076|153610&lt;br /&gt;
H|74.192.153.212:39340|144203&lt;br /&gt;
H|72.190.106.57:12584|132984&lt;br /&gt;
H|78.93.71.132:12334|125668&lt;br /&gt;
H|82.43.248.184:27560|97974&lt;br /&gt;
H|196.205.224.97:6357|86763&lt;br /&gt;
H|74.129.219.30:33172|82005&lt;br /&gt;
H|76.104.12.133:19185|57182&lt;br /&gt;
H|69.59.83.131:18442|38628&lt;br /&gt;
U|http://www.k33bz.com/g2/bazooka.php|248639&lt;br /&gt;
U|http://gwebcache.ns1.net/|248592&lt;br /&gt;
U|http://gwc2.wodi.org/skulls.php|248384&lt;br /&gt;
U|http://gwc.guufshop.com/skulls/skulls.php|248322&lt;br /&gt;
U|http://groovy.syxy.com/up/skulls.php|248300&lt;br /&gt;
U|http://g2.tjtech.org/g2/index.php|247770&lt;br /&gt;
U|http://midian.jayl.de/g2/bazooka.php|240719&lt;br /&gt;
U|http://www.dom2porno.info/skulls/skulls.php|207473&lt;br /&gt;
U|http://gwc.frodoslair.net/skulls/skulls|125668&lt;br /&gt;
U|http://holograph.uni.cc/other/skulls.php|9642&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * Variables&lt;br /&gt;
          o Mandatory&lt;br /&gt;
                + ping:&lt;br /&gt;
                      # Main Part: I|pong|&lt;br /&gt;
                      # Then add the cache name and version: I|pong|fakecache 0.01&lt;br /&gt;
                      # Then lastly add the network support:&lt;br /&gt;
                            * I|pong|fakecache 0.01|gnutella&lt;br /&gt;
                                  o - Gnutella only &lt;br /&gt;
                            * I|pong|fakecache 0.01|gnutella2&lt;br /&gt;
                                  o - Gnutella2 only &lt;br /&gt;
                            * I|pong|fakecache 0.01|gnutella-gnutella2&lt;br /&gt;
                                  o - Gnutella and Gnutella2 served &lt;br /&gt;
                + get:&lt;br /&gt;
                      # Used by clients to requests alternate cache URLs along with IPs and their port numbers. &lt;br /&gt;
                + update:&lt;br /&gt;
                      # url:&lt;br /&gt;
                            * Client update giving an alternate cache URL.&lt;br /&gt;
                            * Formatted with a http:// prefix to each cache. &lt;br /&gt;
                      # ip:&lt;br /&gt;
                            * Client update giving one&#039;s IP to submit. &lt;br /&gt;
                + net:&lt;br /&gt;
                      # Which network to serve the client.&lt;br /&gt;
                            * Gnutella&lt;br /&gt;
                                  o Ex: net=gnutella &lt;br /&gt;
                            * Gnutella2&lt;br /&gt;
                                  o Ex: net=gnutella2 &lt;br /&gt;
                            * Should always be lowercase&lt;br /&gt;
                                  o GWCs should automatically convert network name given to lowercase to prevent Net ID mismatches &lt;br /&gt;
&lt;br /&gt;
solely on case alone.&lt;br /&gt;
&lt;br /&gt;
    *&lt;br /&gt;
          o&lt;br /&gt;
                + client:&lt;br /&gt;
                      # Four letter code of the client. ex: RAZA &lt;br /&gt;
                + version:&lt;br /&gt;
                      # Version number of the client. &lt;br /&gt;
          o Optional&lt;br /&gt;
                + cluster:&lt;br /&gt;
                      # To add extra info to an IP update.&lt;br /&gt;
                            * Output by cache: H|0.0.0.0|AGE OF HOST (Seconds)|clustering some bull**** &lt;br /&gt;
                + statfile:&lt;br /&gt;
                      # Exactly like the specification 1 statfile (Same routine and output style).&lt;br /&gt;
                      # Statistics of the cache request:&lt;br /&gt;
                            * First line: Total requests of the cache number.&lt;br /&gt;
                            * Second line: Requests of the cache an hour number.&lt;br /&gt;
                            * Third line: Updates of the cache an hour number. &lt;br /&gt;
&lt;br /&gt;
Specification 2.1&lt;br /&gt;
&lt;br /&gt;
    * This is an extension of specification 2, not a separate specification!&lt;br /&gt;
    * Pong extension&lt;br /&gt;
          o Append the networks supported joined by a hyphen &#039;-&#039;.&lt;br /&gt;
          o Used for client-side validation of networks supported and for network support reporting to other web caches.&lt;br /&gt;
          o Format:&lt;br /&gt;
                + I|pong|cache name|network names joined by &#039;-&#039;&lt;br /&gt;
                + Format Examples:&lt;br /&gt;
                      # I|pong|fakecache 0.01|gnutella&lt;br /&gt;
                            * - Gnutella only &lt;br /&gt;
                      # I|pong|fakecache 0.01|gnutella2&lt;br /&gt;
                            * - Gnutella2 only &lt;br /&gt;
                      # I|pong|fakecache 0.01|gnutella-gnutella2&lt;br /&gt;
                            * - Gnutella and Gnutella2 served &lt;br /&gt;
    * Host Output&lt;br /&gt;
          o Just like specification 2, but with more fields supported for host output.&lt;br /&gt;
                + H|ip:port|age in cache|clustering|leaves|4 letter vendor code|reported uptime of host|max. leaves possible&lt;br /&gt;
                      # The host, age, and clustering fields are all still the same as in specification 2.&lt;br /&gt;
                      # The leaf count of the hub reported is in the 5th field.&lt;br /&gt;
                      # The vendor code with version number is in the 6th field. &lt;br /&gt;
    * Request Control Variables:&lt;br /&gt;
          o getleaves&lt;br /&gt;
                + Used to obtain leaf counts of hubs given&lt;br /&gt;
                + 4th field ultilized for current leaf count.&lt;br /&gt;
                + 7th field ultilized for maximum leaf slots possible.&lt;br /&gt;
                + Use this as &#039;getleaves=1&#039; or &#039;getleaves&#039; to enable. &lt;br /&gt;
          o getclusters&lt;br /&gt;
                + Enables/Disables clustering.&lt;br /&gt;
                + Use this as &#039;getclusters=1&#039;.&lt;br /&gt;
                + Using &#039;getclusters&#039; or &#039;getclusters=0&#039; disables cluster output. &lt;br /&gt;
          o getvendors&lt;br /&gt;
                + Used to obtain the vendor code w/ version number of the hubs given.&lt;br /&gt;
                + Found in the 5th field.&lt;br /&gt;
                + Use this as &#039;getvendors=1&#039; or &#039;getvendors&#039; to enable. &lt;br /&gt;
          o getuptime&lt;br /&gt;
                + Used to obtain the vendor code w/ version number of the hubs given.&lt;br /&gt;
                + Value is static, do not change the value given when time passes.&lt;br /&gt;
                + Found in the 6th field.&lt;br /&gt;
                + Use this as &#039;getuptime=1&#039; or &#039;getuptime&#039; to enable. &lt;br /&gt;
          o spec&lt;br /&gt;
                + To force the specification parameter&lt;br /&gt;
                + Currently is only supported by Beacon Cache II &lt;br /&gt;
          o pv&lt;br /&gt;
                + Similar to the &#039;spec&#039; parameter, except that it does not force, instead it simply negotiates the specification. &lt;br /&gt;
    * Special Data Requests&lt;br /&gt;
          o info&lt;br /&gt;
                + Outputs extra details of your cache.&lt;br /&gt;
                      # Start with the informational response: I|&lt;br /&gt;
                            * Ex: I|open-source|1 &lt;br /&gt;
          o support&lt;br /&gt;
                + Outputs USEFUL details of your cache.&lt;br /&gt;
                      # Start with the informational response: I|&lt;br /&gt;
                            * Ex: I|support|gnutella2 &lt;br /&gt;
          o getnetworks&lt;br /&gt;
                + Outputs the enabled networks in two formats.&lt;br /&gt;
                      # Start with the informational response: I|&lt;br /&gt;
                            * For the &#039;I|nets|&#039; line&lt;br /&gt;
                                  o The third field contains the supported networks joined by &#039;-&#039;. &lt;br /&gt;
                            * For the &#039;I|networks|&#039; line&lt;br /&gt;
                                  o Interpret the fields from 3 and beyond as individual network names to challenge against. &lt;br /&gt;
                      # Examples&lt;br /&gt;
                            *&lt;br /&gt;
                                  o I|nets|gnutella-gnutella2&lt;br /&gt;
                                  o I|networks|gnutella|gnutella2 &lt;br /&gt;
    * Update Extension Variables:&lt;br /&gt;
          o x_leaves&lt;br /&gt;
                + Number of leaves running on a given hub or ultrapeer.&lt;br /&gt;
                + Value must not be greater than an integer value of 2047.&lt;br /&gt;
                + Note: It is important to know that PHP automaticaly replace dots with underscores, so to keep compatibility with old/new version of clients all caches should support both variants, example: x.leaves x_leaves&lt;br /&gt;
          o x_max&lt;br /&gt;
                + Maximum number of leaves possible on a given hub or ultrapeer.&lt;br /&gt;
                + Value must not be greater than an integer value of 2047. &lt;br /&gt;
          o uptime&lt;br /&gt;
                + Value submitted must be an integer value of the number of seconds of uptime.&lt;br /&gt;
                + Value must not be greater than an integer value of 1 year (31536000) and less than 1 hour (60). &lt;br /&gt;
&lt;br /&gt;
Pinging Caches With Your Cache&lt;br /&gt;
&lt;br /&gt;
    * Please follow this standard:&lt;br /&gt;
          o Client: TEST&lt;br /&gt;
          o Version: Your Cache&#039;s Name&lt;br /&gt;
                + The old value for &amp;quot;version&amp;quot; was 1 &lt;br /&gt;
    * Some variables to attach to the ping (compatibility):&lt;br /&gt;
          o multi&lt;br /&gt;
                + Used by some gwcs in their pings to other gwcs.&lt;br /&gt;
                + It tells the pinged cache to ignore the &amp;quot;net&amp;quot; parameter (so it should never say network not supported) and outputting the pong using this format, if possible, &amp;quot;I|pong|[cache name] [cache version]|[supported networks list]|[url adding is enabled]&amp;quot; - example: I|pong|Skulls 0.2.8a|gnutella-gnutella2|1&lt;br /&gt;
                + Used by Skulls GWC only, supported by Skulls and Beacon Cache II. &lt;br /&gt;
          o cache&lt;br /&gt;
                + This is added to every request made by some gwcs, it is for statistical purposes only.&lt;br /&gt;
                + It simply tells the remote cache that the client is a GWC. &lt;br /&gt;
    * Help&lt;br /&gt;
          o For PHP&lt;br /&gt;
                + Use the fsockopen() function to open a connection to a cache.&lt;br /&gt;
                      # Make sure you &amp;quot;write&amp;quot; to the fsockopen carry value to open the GWC&#039;s target file.&lt;br /&gt;
                            * http://us.php.net/manual/en/function.fsockopen.php &lt;br /&gt;
&lt;br /&gt;
Variable Combination Standards&lt;br /&gt;
&lt;br /&gt;
    * Net variable decides specification!&lt;br /&gt;
          o There are many ways to determine spec., but going with net is the safe way.&lt;br /&gt;
          o Skulls GWC does not use the network parameter to determine specification level.&lt;br /&gt;
          o Beacon Cache (I and II) uses the network parameter to determine the specification level. &lt;br /&gt;
    * Your cache needs to be able to process certain combinations of variables.&lt;br /&gt;
          o Update variable&lt;br /&gt;
                + Update should not fail if absent if spec. 2.&lt;br /&gt;
                      # A Specification 2 parameter. &lt;br /&gt;
    * Spec 1 parameters used in Spec 2:&lt;br /&gt;
          o Should still accept hostfile and urlfile responses for spec. 2.&lt;br /&gt;
                + Beacon Cache (I and II) accepts these parameters on spec 2. &lt;br /&gt;
    * The &#039;spec&#039; paameter can be used to force a specification:&lt;br /&gt;
          o Only known to exist in Beacon Cache II, it can force the request to be handled as a specification 1 or 2 request.&lt;br /&gt;
          o Spec 1 = &#039;spec=1&#039;&lt;br /&gt;
          o Spec 2 = &#039;spec=2&#039;&lt;br /&gt;
          o If &#039;spec&#039; is not equal to any current spec, then default to the predetermined spec. &lt;br /&gt;
    * Multiple variable requests&lt;br /&gt;
          o If for instance a ping and request exist, you should always handle them properly.&lt;br /&gt;
                + Same goes with other combos like an update and ping, statfile + ping and info. &lt;br /&gt;
          o Handle multiple variables as BEST as possible!&lt;br /&gt;
                + Some scanners and GWCs like to fit all their requests into one URL send. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;row recovery, end&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Further Information:&lt;br /&gt;
&lt;br /&gt;
* [http://www.gnucleus.com/gwebcache/ Original GWC site]&lt;br /&gt;
** [http://gnucleus.sourceforge.net/gwebcache/specs.html GWC Spec. 1]&lt;br /&gt;
** [http://gnucleus.sourceforge.net/gwebcache/newgwc.html GWC Spec. 2] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;content recovered from last aviable backup&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Gnutella Web Cache===&lt;br /&gt;
Gnutella requires Gnutella Web Caches (GWC) to get IPs to establish a connection to the network.  These are critical to ensuring the health of the network.  If you have a dedicated server and can spare some extra bandwidth then please consider running a GWC.  People that don&#039;t have a dedicated server or are on normal broadband consumer lines should not run a cache from home.&lt;br /&gt;
&lt;br /&gt;
A GWC is a simple script that can be put on any webserver that supports one of the following scripting languages:&lt;br /&gt;
*JSP (Java Servlet)&lt;br /&gt;
**[http://web.archive.org/web/20061108091447/http://www.mager.org/GWebCache/ Java Servlet GWebCache Application (Archive.org)]&lt;br /&gt;
*C&lt;br /&gt;
**[http://ghostwhitecrab.com/crab/ GhostWhiteCrab]&lt;br /&gt;
*Perl &lt;br /&gt;
**[http://www.jonatkins.com/perlgcache/ Jon Atkins&#039; perlgcache] &lt;br /&gt;
**The original [http://www.gnucleus.com/gwebcache/dist/ GnuWebCache]&lt;br /&gt;
*PHP &lt;br /&gt;
**[http://gwcii.sourceforge.net/ PHPGnuCacheII] - MySQL&lt;br /&gt;
**[http://www.bazookanetworks.com Bazooka G2WC] (recommended) - flat files&lt;br /&gt;
**[http://sourceforge.net/projects/skulls/ Skulls! Multi-Network WebCache] - flat files&lt;br /&gt;
=== Further Information: ===&lt;br /&gt;
* [http://www.gnucleus.com/gwebcache/ Original GWC site]&lt;br /&gt;
&lt;br /&gt;
[[Category:External Links]]&lt;/div&gt;</summary>
		<author><name>Ale5000</name></author>
	</entry>
	<entry>
		<id>https://shareaza.sourceforge.net/w/index.php?title=GWC_specs&amp;diff=11507</id>
		<title>GWC specs</title>
		<link rel="alternate" type="text/html" href="https://shareaza.sourceforge.net/w/index.php?title=GWC_specs&amp;diff=11507"/>
		<updated>2015-03-25T15:12:14Z</updated>

		<summary type="html">&lt;p&gt;Ale5000: Update multi=1 info in the other part of the page BWT this page has duplicate content&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;For general information on GWCs, have a look at the [[GWC]] Wiki page.&#039;&#039;&lt;br /&gt;
{{do not translate}}&lt;br /&gt;
This page is thought to give an overview over the GWC specifications as they are implemented into Shareaza.&lt;br /&gt;
&lt;br /&gt;
A GWC is a simple script that can be put on any webserver that supports one of the following scripting languages: &lt;br /&gt;
&lt;br /&gt;
* JSP (Java Servlet) &lt;br /&gt;
** [http://www1.mager.org/GWebCache/ Jums Web Cache] (Excellent for heavy loads) &lt;br /&gt;
* C &lt;br /&gt;
** [http://wiki.limewire.org/index.php?title=GhostWhiteCrab GhostWhiteCrab] (For dedicated server environments and people who know how to compile C source code!) &lt;br /&gt;
* ASP &lt;br /&gt;
** [http://www.edazzle.net/downloads/gerry.zip Gerry GWC] &lt;br /&gt;
** [https://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=7846&amp;amp;lngWId=4 Lynn (v.s. 0.5)] &lt;br /&gt;
** [https://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=7731&amp;amp;lngWId=4 Lynn (v.s. 0.4)] &lt;br /&gt;
** [http://www.poundwebhosting.com/cgi-bin/lynnx.asp LynnX] &lt;br /&gt;
* Perl &lt;br /&gt;
** [http://www.jonatkins.com/perlgcache/ Jon Atkins&#039; perlgcache] &lt;br /&gt;
** The original [http://www.gnucleus.com/gwebcache/dist/ GnuWebCache] &lt;br /&gt;
* &#039;&#039;&#039;PHP&#039;&#039;&#039; &#039;&#039;(Tip: PHP GWCs are usually the easiest to run and setup on a server.)&#039;&#039;&lt;br /&gt;
** [http://gwcii.sourceforge.net/ PHPGnuCacheII] &lt;br /&gt;
** [http://www.bazookanetworks.com/ Bazooka G2WC] &lt;br /&gt;
** [http://sourceforge.net/projects/skulls/ Skulls! Multi-Network WebCache] &lt;br /&gt;
** [http://sourceforge.net/projects/beaconcache/ Beacon Cache] &lt;br /&gt;
** [http://code.google.com/p/cachechu/ Cachechu G2WC] &lt;br /&gt;
** The original [http://www.gnucleus.com/gwebcache/dist/ GnuWebCache] &#039;&#039;(PHP version is no longer supported)&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
== Breakdown Of The Gnutella Web Caches: == &lt;br /&gt;
{{RecoveredPage|I recently put this into a table. The contents need to be verified -- [[User:Cyko 01|Cyko 01]]}}&lt;br /&gt;
&lt;br /&gt;
{| width= auto; style=&amp;quot;font-size: 85%; text-align: center;text-valign: middle;&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Cache:&lt;br /&gt;
! rowspan=1 |Gnutella:&lt;br /&gt;
! rowspan=1 |Gnutella2:&lt;br /&gt;
! rowspan=1 |Spec 1:&lt;br /&gt;
! rowspan=1 |Spec 2:&lt;br /&gt;
! rowspan=1 |Flat-File:&lt;br /&gt;
! rowspan=1 |SQL:&lt;br /&gt;
! rowspan=1 |Installer:&lt;br /&gt;
! rowspan=1 |Other Networks:&lt;br /&gt;
! rowspan=1 |Different network instances:&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Beacon Cache (Core 2)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|style=&amp;quot;background: #CCFFCC;&amp;quot;| Yes (As of 0.2.0 Alpha)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Beacon Cache (Core 1)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Skulls&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|JumsWebCache&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|GnuWebCache (Perl)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|GnuWebCache (PHP) &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|GhostWhiteCrab(GWC) &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|style=&amp;quot;background: #FFFFCC;&amp;quot;| N/A&lt;br /&gt;
|style=&amp;quot;background: #FFFFCC;&amp;quot;| N/A&lt;br /&gt;
|style=&amp;quot;background: #FFFFCC;&amp;quot;| N/A&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|PHPGnuCacheII &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Bazooka &lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Cachechu&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Perlgcache&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Gerry GWC (v2)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Gerry GWC (v1)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Lynn&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|LynnX&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Shareaza Specific Details == &lt;br /&gt;
&lt;br /&gt;
{{RecoveredPage|Warninig: here I have pasted better formatted recovery, but not verified. Row recovery has been mooved below as I don&#039;t know if anybody has made any changes in it. If not then row recovery can be deleted. Paste starts from &amp;gt;&amp;gt;Shareaza Specific Details&amp;lt;&amp;lt;, here, and ends at second &amp;gt;&amp;gt;Shareaza Specific Details&amp;lt;&amp;lt; I hope it is visible.  --[[User:Ocexyz|Ocexyz]] 23:27, 27 July 2009 (UTC)}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Get String Breakdown:&#039;&#039;&#039; &lt;br /&gt;
* Update a leaf &lt;br /&gt;
** &amp;quot;?update=1&amp;amp;ip=(ip):(port)&amp;amp;x_leaves=(leaf count) &lt;br /&gt;
* Ping Variable &lt;br /&gt;
** Appends &amp;amp;ping=1 to identify the cache name in debug messages (for gnutella and gnutella2 in 2.4.0.0, but only for gnutella2 now in 2.4.0.X for spec1 cache compatibility). &lt;br /&gt;
** This feature new to Shareaza. &lt;br /&gt;
* Network Variable &lt;br /&gt;
** Appends &amp;amp;net=gnutella2 on Gnutella2 queries. &lt;br /&gt;
** Does NOT append a network variable on Gnutella(1) queries. &lt;br /&gt;
* Client Name / Version Format (2.4.0.0 and earlier): &lt;br /&gt;
** &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) ) &lt;br /&gt;
** &amp;amp;version=(Shareaza&#039;s version) &lt;br /&gt;
* Client Name / Version Format (2.4.0.X): &lt;br /&gt;
** If Gnutella &lt;br /&gt;
*** &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) ) &lt;br /&gt;
*** &amp;amp;version=(Shareaza&#039;s version) &lt;br /&gt;
** If Gnutella2 &lt;br /&gt;
*** &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) )+(Shareaza&#039;s version) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GWC Response Matching:&#039;&#039;&#039; &lt;br /&gt;
* i| &lt;br /&gt;
** Informational output alone will not be taken as GWC &#039;success.&#039; &lt;br /&gt;
* i|access|period|(time in sec.) &lt;br /&gt;
** Time in seconds before Shareaza is allowed to make a request to the cache. &lt;br /&gt;
* i|update|period|(time in sec.) &lt;br /&gt;
** Time in seconds before Shareaza is allowed to update to the cache. &lt;br /&gt;
* i|force|remove and i|update|warning|bad url &lt;br /&gt;
** Remove the GWC from the internal list. &lt;br /&gt;
* Some Response Matches (added in 2.3.1.X) &lt;br /&gt;
** i|NO-URL-NO-HOSTS &lt;br /&gt;
*** Outputs warning of the cache being totally empty to the system log. &lt;br /&gt;
** i|NO-URL &lt;br /&gt;
*** Outputs warning of the cache having no alternative URLs to the system log. &lt;br /&gt;
** i|NO-HOSTS &lt;br /&gt;
*** Outputs warning of the cache having no hosts to the system log. &lt;br /&gt;
** i|warning| &lt;br /&gt;
*** Outputs warning of the cache to the system log. &lt;br /&gt;
** ERROR Something Failed &lt;br /&gt;
*** Outputs warning of the cache to the system log(Buggy Bazooka GWCs workaround). &lt;br /&gt;
** i|warning|You came back too early (2.3.1.X) &lt;br /&gt;
** i|warning|client|early (2.3.1.X) &lt;br /&gt;
** WARNING: You came back too early (2.3.1.X) &lt;br /&gt;
** ERROR: Client returned too early (2.3.1.X) &lt;br /&gt;
*** Flood detection for the update side. &lt;br /&gt;
*** Outputs GWebCache(update) Too many connection attempts to the system log. &lt;br /&gt;
** too early (2.3.1.X) &lt;br /&gt;
** early (2.4.0.X) &lt;br /&gt;
*** Flood detection for the request side. &lt;br /&gt;
*** Outputs GWebCache URL: Too many connection attempts to the system log. &lt;br /&gt;
** i|update|OK &lt;br /&gt;
*** Outputs &amp;quot;GWebCache(v2) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
** OK &lt;br /&gt;
*** Outputs &amp;quot;GWebCache(v1) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
&lt;br /&gt;
== Gnutella Web Cache Specifications ==&lt;br /&gt;
==== Specification 1: ====&lt;br /&gt;
* &#039;&#039;&#039;Networks Served&#039;&#039;&#039; &lt;br /&gt;
** Gnutella &lt;br /&gt;
* &#039;&#039;&#039;Format&#039;&#039;&#039; &lt;br /&gt;
** Update went fine: &lt;br /&gt;
*** Ex: OK &lt;br /&gt;
** Update Warning (Small prob., not that bad): &lt;br /&gt;
*** Ex: OKWARNING: Error Message &lt;br /&gt;
&lt;br /&gt;
* Severe Warning (No &#039;OK&#039; message sent) &lt;br /&gt;
** Ex: WARNING: Error Message&lt;br /&gt;
&lt;br /&gt;
* URL Output: &lt;br /&gt;
** Ex: [http://somefreakinrandomcache.com/cache/gcache.php http://somefreakinrandomcache.com/cache/gcache.php] &lt;br /&gt;
*** OR - WITH A PORT NUMBER (If not 80) &lt;br /&gt;
**** Ex: [http://somefreakinrandomcache.com:8080/cache/gcache.php http://somefreakinrandomcache.com:8080/cache/gcache.php] &lt;br /&gt;
* Host Output: &lt;br /&gt;
** Ex: 66.132.55.12:6346 &lt;br /&gt;
* Pong (ping variable response) - was explained below under the topic: variables. &lt;br /&gt;
* &#039;&#039;&#039;Example Cache Output (Beacon Cache) For urlfile Command&#039;&#039;&#039; &lt;br /&gt;
** Example &amp;quot;urlfile Output&amp;quot; URL: Ex: [http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;urlfile=1 http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;urlfile=1] &lt;br /&gt;
*** Example URL Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Getting urls with a pong combined&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| PONG Beacon Cache 0.1.5D Beta[http://gwc.frodoslair.net/skulls/skulls.php http://gwc.frodoslair.net/skulls/skulls.php][http://bbs.robertwoolley.co.uk/GWebCache/gcache.php http://bbs.robertwoolley.co.uk/GWebCache/gcache.php][http://g2.tjtech.org/g2/ http://g2.tjtech.org/g2/][http://g2.tjtech.org/g2/index.php http://g2.tjtech.org/g2/index.php][http://gwc.monnsta.net/ http://gwc.monnsta.net/][http://holograph.uni.cc/other/skulls.php http://holograph.uni.cc/other/skulls.php][http://gwc.nickstallman.net/ http://gwc.nickstallman.net/][http://gwc.eod.cc/skulls.php http://gwc.eod.cc/skulls.php][http://gwc.frodoslair.net/skulls/skulls http://gwc.frodoslair.net/skulls/skulls][http://gwc.werwin.net/skulls.php http://gwc.werwin.net/skulls.php] &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
* &#039;&#039;&#039;Example Cache Output (Beacon Cache) For hostfile Command&#039;&#039;&#039; &lt;br /&gt;
** Example &amp;quot;hostfile Output&amp;quot; URL: Ex: [http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;hostfile=1 http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;hostfile=1] &lt;br /&gt;
*** Example Host Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Getting the hosts with a pong combined&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| PONG Beacon Cache 0.1.5D Beta71.8.84.153:391599.248.214.157:2752969.60.241.55:16369193.253.239.246:3021868.156.175.121:634871.179.7.241:1834474.196.22.241:634812.210.197.194:10531222.150.143.77:1000058.85.231.135:634624.141.199.164:2020572.175.201.195:634869.81.129.228:488097.81.221.63:1321970.15.130.224:7759216.211.188.106:5190375.167.168.156:4866012.214.14.3:3591676.177.244.106:2418098.165.218.139:3963068.112.182.125:368568.117.204.57:2348265.12.154.25:4076069.180.47.169:571175.138.40.173:2498798.201.19.0:3366270.187.2.144:634868.186.209.107:1442969.159.7.61:634876.208.176.196:48199&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
* &#039;&#039;&#039;For combining a hostfile and urlfile request:&#039;&#039;&#039; &lt;br /&gt;
** Warning: This is non-standard. &lt;br /&gt;
** &#039;&#039;&#039;Example Cache Output (Beacon Cache) For bfile Command&#039;&#039;&#039; &lt;br /&gt;
*** Example &amp;quot;bfile Output&amp;quot; URL: Ex: [http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;bfile=1 http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;bfile=1] &lt;br /&gt;
**** Example Host and URL Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Getting the hosts and urls with a pong combined&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| PONG Beacon Cache 0.1.5D Beta71.8.84.153:391599.248.214.157:2752969.60.241.55:16369193.253.239.246:3021868.156.175.121:634871.179.7.241:1834474.196.22.241:634812.210.197.194:10531222.150.143.77:1000058.85.231.135:634624.141.199.164:2020572.175.201.195:634869.81.129.228:488097.81.221.63:1321970.15.130.224:7759216.211.188.106:5190375.167.168.156:4866012.214.14.3:3591676.177.244.106:2418098.165.218.139:3963068.112.182.125:368568.117.204.57:2348265.12.154.25:4076069.180.47.169:571175.138.40.173:2498798.201.19.0:3366270.187.2.144:634868.186.209.107:1442969.159.7.61:634876.208.176.196:48199[http://gwc.frodoslair.net/skulls/skulls.php http://gwc.frodoslair.net/skulls/skulls.php][http://bbs.robertwoolley.co.uk/GWebCache/gcache.php http://bbs.robertwoolley.co.uk/GWebCache/gcache.php][http://g2.tjtech.org/g2/ http://g2.tjtech.org/g2/][http://g2.tjtech.org/g2/index.php http://g2.tjtech.org/g2/index.php][http://gwc.monnsta.net/ http://gwc.monnsta.net/][http://holograph.uni.cc/other/skulls.php http://holograph.uni.cc/other/skulls.php][http://gwc.nickstallman.net/ http://gwc.nickstallman.net/][http://gwc.eod.cc/skulls.php http://gwc.eod.cc/skulls.php][http://gwc.frodoslair.net/skulls/skulls http://gwc.frodoslair.net/skulls/skulls][http://gwc.werwin.net/skulls.php http://gwc.werwin.net/skulls.php] &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Variables&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Mandatory&#039;&#039;&#039; &lt;br /&gt;
** ping: &lt;br /&gt;
*** Response should have this always: PONG&lt;br /&gt;
*** After, put the cache&#039;s name. ex: PONG fakecache 0.01&lt;br /&gt;
** client: &lt;br /&gt;
*** Four letter code of the client. ex: RAZA &lt;br /&gt;
** version: &lt;br /&gt;
*** Version number of the client. &lt;br /&gt;
** urlfile: &lt;br /&gt;
*** Used by the client to request alternate cache urls. &lt;br /&gt;
** hostfile: &lt;br /&gt;
*** Used by the client to request IPs with port numbers attached. &lt;br /&gt;
** url: &lt;br /&gt;
*** Client update giving an alternate cache URL. &lt;br /&gt;
*** Formatted with a http:// prefix to each cache. &lt;br /&gt;
** ip: &lt;br /&gt;
*** Client update giving one&#039;s IP to submit. &lt;br /&gt;
** url1: &lt;br /&gt;
*** OLD OUTDATED Client update giving an alternate cache URL. &lt;br /&gt;
*** Formatted with a http:// prefix to each cache. &lt;br /&gt;
** ip1: &lt;br /&gt;
*** OLD OUTDATED Client update giving one&#039;s IP to submit. &lt;br /&gt;
* &#039;&#039;&#039;Optional&#039;&#039;&#039; &lt;br /&gt;
** bfile: &lt;br /&gt;
*** For clients to request both URLs and IPs from the cache at the same time. &lt;br /&gt;
** statfile: &lt;br /&gt;
*** Statistics of the cache request: &lt;br /&gt;
**** First line: Total requests of the cache number. &lt;br /&gt;
**** Second line: Requests of the cache an hour number. &lt;br /&gt;
**** Third line: Updates of the cache an hour number.&lt;br /&gt;
&lt;br /&gt;
==== Specification 2: ====&lt;br /&gt;
&#039;&#039;&#039;Networks Served&#039;&#039;&#039; &lt;br /&gt;
* Gnutella, Gnutella2, etc. &lt;br /&gt;
&#039;&#039;&#039;Format&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Information Output&#039;&#039;&#039; &lt;br /&gt;
** Starts with: I| &lt;br /&gt;
*** &#039;&#039;&#039;Categories&#039;&#039;&#039; &lt;br /&gt;
**** &#039;&#039;&#039;Pong&#039;&#039;&#039; (ping variable response) - Described below under the topic: variables. &lt;br /&gt;
**** &#039;&#039;&#039;Update Status Response&#039;&#039;&#039; &lt;br /&gt;
***** Format: I|update &lt;br /&gt;
***** &#039;&#039;&#039;Responses&#039;&#039;&#039; &lt;br /&gt;
****** I|update|OK &lt;br /&gt;
******* - Everything went fine. &lt;br /&gt;
****** I|update|OK|WARNING &lt;br /&gt;
******* Small warning. &lt;br /&gt;
****** I|update|WARNING &lt;br /&gt;
******* Severe warning &lt;br /&gt;
**** &#039;&#039;&#039;Plain Warnings&#039;&#039;&#039; &lt;br /&gt;
***** Format: I|WARNING &lt;br /&gt;
****** Append any warning messages after it - Ex: I|WARNING|You came back too early &lt;br /&gt;
**** &#039;&#039;&#039;Extra Info&#039;&#039;&#039; - Described below under the topic: variables. &lt;br /&gt;
* &#039;&#039;&#039;Host Output&#039;&#039;&#039; &lt;br /&gt;
** Starts with: H| &lt;br /&gt;
** Add the IP with its port: &lt;br /&gt;
*** Ex: H|0.0.0.0:6346 &lt;br /&gt;
** Add the time, thereafter, of the host&#039;s (In seconds*) time in cache: &lt;br /&gt;
*** Ex: H|0.0.0.0:6346|45 &lt;br /&gt;
** If cluster exists with cluster=somerandomwords &lt;br /&gt;
*** Add the clustered words after the host&#039;s age: &lt;br /&gt;
**** Ex: H|0.0.0.0:6346|45|somerandomwords &lt;br /&gt;
* &#039;&#039;&#039;URL Output&#039;&#039;&#039; &lt;br /&gt;
** Starts with: U| &lt;br /&gt;
** Add the URL with http:// before it, plus the port (if it&#039;s not 80). &lt;br /&gt;
*** Ex: U|[http://somerandomcache.com/ http://somerandomcache.com/] &lt;br /&gt;
** Add the time, thereafter, of the URL&#039;s time (In seconds*) in cache: &lt;br /&gt;
*** Ex: U|[http://somerandomcache.com/%7C45 http://somerandomcache.com/|45] &lt;br /&gt;
* &#039;&#039;&#039;Example Cache Output (Beacon Cache) For get Command&#039;&#039;&#039; &lt;br /&gt;
** Example URL: [http://grantgalitz.com/Beacon/gwc.php?get=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;net=gnutella2&amp;amp;ping=1 http://grantgalitz.com/Beacon/gwc.php?get=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;net=gnutella2&amp;amp;ping=1] &lt;br /&gt;
*** Example &amp;quot;Get&amp;quot; Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Getting the hosts and urls with a pong combined&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| I|pong|Beacon Cache 0.1.5D Beta|gnutella-gnutella2H|65.9.200.243:4968|248261H|68.228.129.75:44599|242678H|98.240.196.122:8206|240719H|76.104.12.133:14921|218273H|69.136.1.12:3924|211610H|81.154.208.71:8595|174402H|97.96.105.51:2076|153610H|74.192.153.212:39340|144203H|72.190.106.57:12584|132984H|78.93.71.132:12334|125668H|82.43.248.184:27560|97974H|196.205.224.97:6357|86763H|74.129.219.30:33172|82005H|76.104.12.133:19185|57182H|69.59.83.131:18442|38628U|[http://www.k33bz.com/g2/bazooka.php%7C248639 http://www.k33bz.com/g2/bazooka.php|248639]U|[http://gwebcache.ns1.net/%7C248592 http://gwebcache.ns1.net/|248592]U|[http://gwc2.wodi.org/skulls.php%7C248384 http://gwc2.wodi.org/skulls.php|248384]U|[http://gwc.guufshop.com/skulls/skulls.php%7C248322 http://gwc.guufshop.com/skulls/skulls.php|248322]U|[http://groovy.syxy.com/up/skulls.php%7C248300 http://groovy.syxy.com/up/skulls.php|248300]U|[http://g2.tjtech.org/g2/index.php%7C247770 http://g2.tjtech.org/g2/index.php|247770]U|[http://midian.jayl.de/g2/bazooka.php%7C240719 http://midian.jayl.de/g2/bazooka.php|240719]U|[http://www.dom2porno.info/skulls/skulls.php%7C207473 http://www.dom2porno.info/skulls/skulls.php|207473]U|[http://gwc.frodoslair.net/skulls/skulls%7C125668 http://gwc.frodoslair.net/skulls/skulls|125668]U|[http://holograph.uni.cc/other/skulls.php%7C9642 http://holograph.uni.cc/other/skulls.php|9642] &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Variables&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Mandatory&#039;&#039;&#039; &lt;br /&gt;
** ping: &lt;br /&gt;
*** Main Part: I|pong| &lt;br /&gt;
*** Then add the cache name and version: I|pong|fakecache 0.01 &lt;br /&gt;
*** Then lastly add the network support: &lt;br /&gt;
**** I|pong|fakecache 0.01|gnutella &lt;br /&gt;
***** - Gnutella only &lt;br /&gt;
**** I|pong|fakecache 0.01|gnutella2 &lt;br /&gt;
***** - Gnutella2 only &lt;br /&gt;
**** I|pong|fakecache 0.01|gnutella-gnutella2 &lt;br /&gt;
***** - Gnutella and Gnutella2 served &lt;br /&gt;
** get: &lt;br /&gt;
*** Used by clients to requests alternate cache URLs along with IPs and their port numbers. &lt;br /&gt;
** update: &lt;br /&gt;
*** url: &lt;br /&gt;
**** Client update giving an alternate cache URL. &lt;br /&gt;
**** Formatted with a http:// prefix to each cache. &lt;br /&gt;
*** ip: &lt;br /&gt;
**** Client update giving one&#039;s IP to submit. &lt;br /&gt;
** net: &lt;br /&gt;
*** Which network to serve the client. &lt;br /&gt;
**** Gnutella &lt;br /&gt;
***** Ex: net=gnutella &lt;br /&gt;
**** Gnutella2 &lt;br /&gt;
***** Ex: net=gnutella2 &lt;br /&gt;
**** &#039;&#039;&#039;Should always be lowercase&#039;&#039;&#039; &lt;br /&gt;
***** GWCs should automatically convert network name given to lowercase to prevent Net ID mismatches &lt;br /&gt;
&lt;br /&gt;
solely on case alone. &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
* &lt;br /&gt;
** client: &lt;br /&gt;
*** Four letter code of the client. ex: RAZA &lt;br /&gt;
** version: &lt;br /&gt;
*** Version number of the client. &lt;br /&gt;
* &#039;&#039;&#039;Optional&#039;&#039;&#039; &lt;br /&gt;
** cluster: &lt;br /&gt;
*** To add extra info to an IP update. &lt;br /&gt;
**** Output by cache: H|0.0.0.0|AGE OF HOST (Seconds)|clustering some bull**** &lt;br /&gt;
** statfile: &lt;br /&gt;
*** Exactly like the specification 1 statfile &#039;&#039;&#039;(Same routine and output style)&#039;&#039;&#039;. &lt;br /&gt;
*** Statistics of the cache request: &lt;br /&gt;
**** First line: Total requests of the cache number. &lt;br /&gt;
**** Second line: Requests of the cache an hour number. &lt;br /&gt;
**** Third line: Updates of the cache an hour number. &lt;br /&gt;
&lt;br /&gt;
==== Specification 2.1 ====&lt;br /&gt;
&#039;&#039;&#039;This is an extension of specification 2, not a separate specification!&#039;&#039;&#039; &lt;br /&gt;
Pong extension &lt;br /&gt;
* Append the networks supported joined by a hyphen &#039;-&#039;. &lt;br /&gt;
* Used for client-side validation of networks supported and for network support reporting to other web caches. &lt;br /&gt;
* Format: &lt;br /&gt;
** I|pong|cache name|network names joined by &#039;-&#039; &lt;br /&gt;
** Format Examples: &lt;br /&gt;
*** I|pong|fakecache 0.01|gnutella &lt;br /&gt;
**** - Gnutella only &lt;br /&gt;
*** I|pong|fakecache 0.01|gnutella2 &lt;br /&gt;
**** - Gnutella2 only &lt;br /&gt;
*** I|pong|fakecache 0.01|gnutella-gnutella2 &lt;br /&gt;
**** - Gnutella and Gnutella2 served &lt;br /&gt;
Host Output &lt;br /&gt;
* Just like specification 2, but with more fields supported for host output. &lt;br /&gt;
** H|ip:port|age in cache|clustering|leaves|4 letter vendor code|reported uptime of host|max. leaves possible &lt;br /&gt;
*** The host, age, and clustering fields are all still the same as in specification 2. &lt;br /&gt;
*** The leaf count of the hub reported is in the 5th field. &lt;br /&gt;
*** The vendor code with version number is in the 6th field. &lt;br /&gt;
Request Control Variables: &lt;br /&gt;
* getleaves &lt;br /&gt;
** Used to obtain leaf counts of hubs given &lt;br /&gt;
** 4th field ultilized for current leaf count. &lt;br /&gt;
** 7th field ultilized for maximum leaf slots possible. &lt;br /&gt;
** Use this as &#039;getleaves=1&#039; or &#039;getleaves&#039; to enable. &lt;br /&gt;
* getclusters &lt;br /&gt;
** Enables/Disables clustering. &lt;br /&gt;
** Use this as &#039;getclusters=1&#039;. &lt;br /&gt;
** Using &#039;getclusters&#039; or &#039;getclusters=0&#039; disables cluster output. &lt;br /&gt;
* getvendors &lt;br /&gt;
** Used to obtain the vendor code w/ version number of the hubs given. &lt;br /&gt;
** Found in the 5th field. &lt;br /&gt;
** Use this as &#039;getvendors=1&#039; or &#039;getvendors&#039; to enable. &lt;br /&gt;
* getuptime &lt;br /&gt;
** Used to obtain the vendor code w/ version number of the hubs given. &lt;br /&gt;
** Value is static, do not change the value given when time passes. &lt;br /&gt;
** Found in the 6th field. &lt;br /&gt;
** Use this as &#039;getuptime=1&#039; or &#039;getuptime&#039; to enable. &lt;br /&gt;
* spec &lt;br /&gt;
** To force the specification parameter &lt;br /&gt;
** Currently is only supported by Beacon Cache II &lt;br /&gt;
* pv &lt;br /&gt;
** Similar to the &#039;spec&#039; parameter, except that it does not force, instead it simply negotiates the specification. &lt;br /&gt;
Special Data Requests &lt;br /&gt;
* info &lt;br /&gt;
** Outputs extra details of your cache. &lt;br /&gt;
*** Start with the informational response: I| &lt;br /&gt;
**** Ex: I|open-source|1 &lt;br /&gt;
* support &lt;br /&gt;
** Outputs USEFUL details of your cache. &lt;br /&gt;
*** Start with the informational response: I| &lt;br /&gt;
**** Ex: I|support|gnutella2 &lt;br /&gt;
* getnetworks &lt;br /&gt;
** Outputs the enabled networks in two formats. &lt;br /&gt;
*** Start with the informational response: I| &lt;br /&gt;
**** For the &#039;I|nets|&#039; line &lt;br /&gt;
***** The third field contains the supported networks joined by &#039;-&#039;. &lt;br /&gt;
**** For the &#039;I|networks|&#039; line &lt;br /&gt;
***** Interpret the fields from 3 and beyond as individual network names to challenge against. &lt;br /&gt;
*** Examples &lt;br /&gt;
**** &lt;br /&gt;
***** I|nets|gnutella-gnutella2 &lt;br /&gt;
***** I|networks|gnutella|gnutella2 &lt;br /&gt;
Update Extension Variables: &lt;br /&gt;
* x_leaves &lt;br /&gt;
** Number of leaves running on a given hub or ultrapeer. &lt;br /&gt;
** &#039;&#039;&#039;Value must not be greater than an integer value of 2047.&#039;&#039;&#039; &lt;br /&gt;
** &#039;&#039;&#039;Note: It is important to know that PHP automaticaly replace dots with underscores, so to keep compatibility with old/new version of clients all caches should support both variants, example: x.leaves x_leaves&#039;&#039;&#039; &lt;br /&gt;
* x_max &lt;br /&gt;
** Maximum number of leaves possible on a given hub or ultrapeer. &lt;br /&gt;
** &#039;&#039;&#039;Value must not be greater than an integer value of 2047.&#039;&#039;&#039; &lt;br /&gt;
* uptime &lt;br /&gt;
** Value submitted must be an integer value of the number of seconds of uptime. &lt;br /&gt;
** &#039;&#039;&#039;Value must not be greater than an integer value of 1 year (31536000) and less than 1 hour (60).&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== Pinging Caches With Your Cache ===&lt;br /&gt;
&#039;&#039;&#039;Please follow this standard:&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Client: TEST&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Version: Your Cache&#039;s Name&#039;&#039;&#039; &lt;br /&gt;
** The old value for &amp;quot;version&amp;quot; was 1 &lt;br /&gt;
&#039;&#039;&#039;Some variables to attach to the ping (compatibility):&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;multi&#039;&#039;&#039; &lt;br /&gt;
** Used by some gwcs in their pings to other gwcs. &lt;br /&gt;
** &amp;lt;nowiki&amp;gt;It tells the pinged cache to ignore the &amp;quot;net&amp;quot; parameter (so it should never say network not supported) and outputting the pong using this format, if possible, &amp;quot;I|pong|[cache name] [cache version]|[supported networks list]&amp;quot; - example: I|pong|Skulls 0.2.9|gnutella-gnutella2 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
** Used by Skulls GWC only, supported by Skulls and Beacon Cache II. &lt;br /&gt;
* &#039;&#039;&#039;cache&#039;&#039;&#039; &lt;br /&gt;
** This is added to every request made by some gwcs, it is for statistical purposes only. &lt;br /&gt;
** It simply tells the remote cache that the client is a GWC. &lt;br /&gt;
&#039;&#039;&#039;Help&#039;&#039;&#039; &lt;br /&gt;
* For PHP &lt;br /&gt;
** Use the fsockopen() function to open a connection to a cache. &lt;br /&gt;
*** Make sure you &amp;quot;write&amp;quot; to the fsockopen carry value to open the GWC&#039;s target file. &lt;br /&gt;
**** [http://us.php.net/manual/en/function.fsockopen.php http://us.php.net/manual/en/function.fsockopen.php] &lt;br /&gt;
&lt;br /&gt;
=== Variable Combination Standards ===&lt;br /&gt;
&#039;&#039;&#039;Net variable decides specification!&#039;&#039;&#039; &lt;br /&gt;
* There are many ways to determine spec., but going with net is the safe way. &lt;br /&gt;
* Skulls GWC does not use the network parameter to determine specification level. &lt;br /&gt;
* Beacon Cache (I and II) uses the network parameter to determine the specification level. &lt;br /&gt;
&#039;&#039;&#039;Your cache needs to be able to process certain combinations of variables.&#039;&#039;&#039; &lt;br /&gt;
* Update variable &lt;br /&gt;
** Update should not fail if absent if spec. 2. &lt;br /&gt;
*** A Specification 2 parameter. &lt;br /&gt;
Spec 1 parameters used in Spec 2: &lt;br /&gt;
* Should still accept hostfile and urlfile responses for spec. 2. &lt;br /&gt;
** Beacon Cache (I and II) accepts these parameters on spec 2. &lt;br /&gt;
The &#039;spec&#039; paameter can be used to force a specification: &lt;br /&gt;
* Only known to exist in Beacon Cache II, it can force the request to be handled as a specification 1 or 2 request. &lt;br /&gt;
* Spec 1 = &#039;spec=1&#039; &lt;br /&gt;
* Spec 2 = &#039;spec=2&#039; &lt;br /&gt;
* If &#039;spec&#039; is not equal to any current spec, then default to the predetermined spec. &lt;br /&gt;
&#039;&#039;&#039;Multiple variable requests&#039;&#039;&#039; &lt;br /&gt;
* If for instance a ping and request exist, you should always handle them properly. &lt;br /&gt;
** Same goes with other combos like an update and ping, statfile + ping and info. &lt;br /&gt;
* Handle multiple variables as BEST as possible! &lt;br /&gt;
** Some scanners and GWCs like to fit all their requests into one URL send. &lt;br /&gt;
&lt;br /&gt;
=== Further Information: ===&lt;br /&gt;
* [http://www.gnucleus.com/gwebcache/ Original GWC] [http://www.gnucleus.com/gwebcache/ site] &lt;br /&gt;
** [http://gnucleus.sourceforge.net/gwebcache/specs.html GWC Spec. 1] &lt;br /&gt;
** [http://gnucleus.sourceforge.net/gwebcache/newgwc.html GWC Spec. 2] &lt;br /&gt;
&lt;br /&gt;
=== Gnutella Web Cache ===&lt;br /&gt;
Gnutella requires Gnutella Web Caches (GWC) to get IPs to establish a connection to the network.  These are critical to ensuring the health of the network.  If you have a dedicated server and can spare some extra bandwidth then please consider running a GWC.  People that don&#039;t have a dedicated server or are on normal broadband consumer lines should not run a cache from home.&lt;br /&gt;
&lt;br /&gt;
A GWC is a simple script that can be put on any webserver that supports one of the following scripting languages:&lt;br /&gt;
*JSP (Java Servlet)&lt;br /&gt;
**[http://web.archive.org/web/20061108091447/http://www.mager.org/GWebCache/ Java Servlet GWebCache Application (Archive.org)]&lt;br /&gt;
*C&lt;br /&gt;
**[http://ghostwhitecrab.com/crab/ GhostWhiteCrab]&lt;br /&gt;
*Perl &lt;br /&gt;
**[http://www.jonatkins.com/perlgcache/ Jon Atkins&#039; perlgcache] &lt;br /&gt;
**The original [http://www.gnucleus.com/gwebcache/dist/ GnuWebCache]&lt;br /&gt;
*PHP &lt;br /&gt;
**[http://gwcii.sourceforge.net/ PHPGnuCacheII] - MySQL&lt;br /&gt;
**[http://www.bazookanetworks.com Bazooka G2WC] (recommended) - flat files&lt;br /&gt;
**[http://sourceforge.net/projects/skulls/ Skulls! Multi-Network WebCache] - flat files&lt;br /&gt;
====Further Information:====&lt;br /&gt;
*[http://www.gnucleus.com/gwebcache/|Original GWC site]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{RecoveredPage|--&amp;gt;Saved in timestamp 20090421202728Retrieved from &amp;quot;[https://www.pantheraproject.net/wiki/index.php?title=GWC This page was last modified on April 18, 2009, at 23:25. &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;Copyright © 2002-2009 Shareaza Development Team. &amp;lt;/center&amp;gt;&amp;lt;center&amp;gt;[[Image:poweredby_mediawiki_88x31.png]] --[[User:Ocexyz|Ocexyz]] 16:20, 27 July 2009 (UTC)}}&lt;br /&gt;
&lt;br /&gt;
{{RecoveredPage|Warninig: here ends pasted better formatted recovery. Row recovery has been mooved below as I don&#039;t know if anybody has made any changes in it. If not then row recovery can be deleted I suppose. Paste starts from == Shareaza Specific Details == and ends at second == Shareaza Specific Details ==, here. I hope it is visible.  --[[User:Ocexyz|Ocexyz]] 16:20, 27 July 2009 (UTC)  }}&lt;br /&gt;
&lt;br /&gt;
==Shareaza Specific Details==&lt;br /&gt;
&lt;br /&gt;
{{RecoveredPage|Warninig: here ends pasted better formatted recovery. Row recovery has been mooved below as I don&#039;t know if anybody has made any changes in it. If not then row recovery can be deleted I suppose. Paste starts from &amp;gt;&amp;gt;Shareaza Specific Details&amp;lt;&amp;lt; and ends at second &amp;gt;&amp;gt; Shareaza Specific Details&amp;lt;&amp;lt;, here. I hope it is visible.  --[[User:Ocexyz|Ocexyz]] 23:27, 27 July 2009 (UTC)  }}&lt;br /&gt;
&lt;br /&gt;
* Get String Breakdown:&lt;br /&gt;
          o Update a leaf&lt;br /&gt;
                + &amp;quot;?update=1&amp;amp;ip=(ip):(port)&amp;amp;x_leaves=(leaf count) &lt;br /&gt;
          o Ping Variable&lt;br /&gt;
                + Appends &amp;amp;ping=1 to identify the cache name in debug messages (for gnutella and gnutella2 in 2.4.0.0, but only for gnutella2 now in 2.4.0.X for spec1 cache compatibility).&lt;br /&gt;
                + This feature new to Shareaza. &lt;br /&gt;
          o Network Variable&lt;br /&gt;
                + Appends &amp;amp;net=gnutella2 on Gnutella2 queries.&lt;br /&gt;
                + Does NOT append a network variable on Gnutella(1) queries. &lt;br /&gt;
          o Client Name / Version Format (2.4.0.0 and earlier):&lt;br /&gt;
                + &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) )&lt;br /&gt;
                + &amp;amp;version=(Shareaza&#039;s version) &lt;br /&gt;
          o Client Name / Version Format (2.4.0.X):&lt;br /&gt;
                + If Gnutella&lt;br /&gt;
                      # &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) )&lt;br /&gt;
                      # &amp;amp;version=(Shareaza&#039;s version) &lt;br /&gt;
                + If Gnutella2&lt;br /&gt;
                      # &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) )+(Shareaza&#039;s version) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* GWC Response Matching:&lt;br /&gt;
          o i|&lt;br /&gt;
                + Informational output alone will not be taken as GWC &#039;success.&#039; &lt;br /&gt;
          o i|access|period|(time in sec.)&lt;br /&gt;
                + Time in seconds before Shareaza is allowed to make a request to the cache. &lt;br /&gt;
          o i|update|period|(time in sec.)&lt;br /&gt;
                + Time in seconds before Shareaza is allowed to update to the cache. &lt;br /&gt;
          o i|force|remove and i|update|warning|bad url&lt;br /&gt;
                + Remove the GWC from the internal list. &lt;br /&gt;
          o Some Response Matches (added in 2.3.1.X)&lt;br /&gt;
                + i|NO-URL-NO-HOSTS&lt;br /&gt;
                      # Outputs warning of the cache being totally empty to the system log. &lt;br /&gt;
                + i|NO-URL&lt;br /&gt;
                      # Outputs warning of the cache having no alternative URLs to the system log. &lt;br /&gt;
                + i|NO-HOSTS&lt;br /&gt;
                      # Outputs warning of the cache having no hosts to the system log. &lt;br /&gt;
                + i|warning|&lt;br /&gt;
                      # Outputs warning of the cache to the system log. &lt;br /&gt;
                + ERROR Something Failed&lt;br /&gt;
                      # Outputs warning of the cache to the system log(Buggy Bazooka GWCs workaround). &lt;br /&gt;
                + i|warning|You came back too early (2.3.1.X)&lt;br /&gt;
                + i|warning|client|early (2.3.1.X)&lt;br /&gt;
                + WARNING: You came back too early (2.3.1.X)&lt;br /&gt;
                + ERROR: Client returned too early (2.3.1.X)&lt;br /&gt;
                      # Flood detection for the update side.&lt;br /&gt;
                      # Outputs GWebCache(update) Too many connection attempts to the system log. &lt;br /&gt;
                + too early (2.3.1.X)&lt;br /&gt;
                + early (2.4.0.X)&lt;br /&gt;
                      # Flood detection for the request side.&lt;br /&gt;
                      # Outputs GWebCache URL: Too many connection attempts to the system log. &lt;br /&gt;
                + i|update|OK&lt;br /&gt;
                      # Outputs &amp;quot;GWebCache(v2) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
                + OK&lt;br /&gt;
                      # Outputs &amp;quot;GWebCache(v1) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* GWC Response Matching:&lt;br /&gt;
          o i|&lt;br /&gt;
                + Informational output alone will not be taken as GWC &#039;success.&#039; &lt;br /&gt;
          o i|access|period|(time in sec.)&lt;br /&gt;
                + Time in seconds before Shareaza is allowed to make a request to the cache. &lt;br /&gt;
          o i|update|period|(time in sec.)&lt;br /&gt;
                + Time in seconds before Shareaza is allowed to update to the cache. &lt;br /&gt;
          o i|force|remove and i|update|warning|bad url&lt;br /&gt;
                + Remove the GWC from the internal list. &lt;br /&gt;
          o Some Response Matches (added in 2.3.1.X)&lt;br /&gt;
                + i|NO-URL-NO-HOSTS&lt;br /&gt;
                      # Outputs warning of the cache being totally empty to the system log. &lt;br /&gt;
                + i|NO-URL&lt;br /&gt;
                      # Outputs warning of the cache having no alternative URLs to the system log. &lt;br /&gt;
                + i|NO-HOSTS&lt;br /&gt;
                      # Outputs warning of the cache having no hosts to the system log. &lt;br /&gt;
                + i|warning|&lt;br /&gt;
                      # Outputs warning of the cache to the system log. &lt;br /&gt;
                + ERROR Something Failed&lt;br /&gt;
                      # Outputs warning of the cache to the system log(Buggy Bazooka GWCs workaround). &lt;br /&gt;
                + i|warning|You came back too early (2.3.1.X)&lt;br /&gt;
                + i|warning|client|early (2.3.1.X)&lt;br /&gt;
                + WARNING: You came back too early (2.3.1.X)&lt;br /&gt;
                + ERROR: Client returned too early (2.3.1.X)&lt;br /&gt;
                      # Flood detection for the update side.&lt;br /&gt;
                      # Outputs GWebCache(update) Too many connection attempts to the system log. &lt;br /&gt;
                + too early (2.3.1.X)&lt;br /&gt;
                + early (2.4.0.X)&lt;br /&gt;
                      # Flood detection for the request side.&lt;br /&gt;
                      # Outputs GWebCache URL: Too many connection attempts to the system log. &lt;br /&gt;
                + i|update|OK&lt;br /&gt;
                      # Outputs &amp;quot;GWebCache(v2) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
                + OK&lt;br /&gt;
                      # Outputs &amp;quot;GWebCache(v1) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Gnutella Web Cache Specifications==&lt;br /&gt;
&amp;lt;end of partial recovery by OCE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;end of recovered content&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;row recovery, start&amp;gt; &lt;br /&gt;
 Specification 1:&lt;br /&gt;
&lt;br /&gt;
    * Networks Served&lt;br /&gt;
          o Gnutella &lt;br /&gt;
    * Format&lt;br /&gt;
          o Update went fine:&lt;br /&gt;
                + Ex: OK &lt;br /&gt;
          o Update Warning (Small prob., not that bad):&lt;br /&gt;
                + Ex: &lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
WARNING: Error Message&lt;br /&gt;
&lt;br /&gt;
    * Severe Warning (No &#039;OK&#039; message sent)&lt;br /&gt;
          o Ex: &lt;br /&gt;
&lt;br /&gt;
WARNING: Error Message&lt;br /&gt;
&lt;br /&gt;
    * URL Output:&lt;br /&gt;
          o Ex: http://somefreakinrandomcache.com/cache/gcache.php&lt;br /&gt;
                + OR - WITH A PORT NUMBER (If not 80)&lt;br /&gt;
                      # Ex: http://somefreakinrandomcache.com:8080/cache/gcache.php &lt;br /&gt;
    * Host Output:&lt;br /&gt;
          o Ex: 66.132.55.12:6346 &lt;br /&gt;
    * Pong (ping variable response) - was explained below under the topic: variables.&lt;br /&gt;
    * Example Cache Output (Beacon Cache) For urlfile Command&lt;br /&gt;
          o Example &amp;quot;urlfile Output&amp;quot; URL: Ex: http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;urlfile=1&lt;br /&gt;
                + Example URL Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting urls with a pong combined&lt;br /&gt;
&lt;br /&gt;
PONG Beacon Cache 0.1.5D Beta&lt;br /&gt;
http://gwc.frodoslair.net/skulls/skulls.php&lt;br /&gt;
http://bbs.robertwoolley.co.uk/GWebCache/gcache.php&lt;br /&gt;
http://g2.tjtech.org/g2/&lt;br /&gt;
http://g2.tjtech.org/g2/index.php&lt;br /&gt;
http://gwc.monnsta.net/&lt;br /&gt;
http://holograph.uni.cc/other/skulls.php&lt;br /&gt;
http://gwc.nickstallman.net/&lt;br /&gt;
http://gwc.eod.cc/skulls.php&lt;br /&gt;
http://gwc.frodoslair.net/skulls/skulls&lt;br /&gt;
http://gwc.werwin.net/skulls.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * Example Cache Output (Beacon Cache) For hostfile Command&lt;br /&gt;
          o Example &amp;quot;hostfile Output&amp;quot; URL: Ex: http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;hostfile=1&lt;br /&gt;
                + Example Host Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting the hosts with a pong combined&lt;br /&gt;
&lt;br /&gt;
PONG Beacon Cache 0.1.5D Beta&lt;br /&gt;
71.8.84.153:3915&lt;br /&gt;
99.248.214.157:27529&lt;br /&gt;
69.60.241.55:16369&lt;br /&gt;
193.253.239.246:30218&lt;br /&gt;
68.156.175.121:6348&lt;br /&gt;
71.179.7.241:18344&lt;br /&gt;
74.196.22.241:6348&lt;br /&gt;
12.210.197.194:10531&lt;br /&gt;
222.150.143.77:10000&lt;br /&gt;
58.85.231.135:6346&lt;br /&gt;
24.141.199.164:20205&lt;br /&gt;
72.175.201.195:6348&lt;br /&gt;
69.81.129.228:4880&lt;br /&gt;
97.81.221.63:13219&lt;br /&gt;
70.15.130.224:7759&lt;br /&gt;
216.211.188.106:51903&lt;br /&gt;
75.167.168.156:48660&lt;br /&gt;
12.214.14.3:35916&lt;br /&gt;
76.177.244.106:24180&lt;br /&gt;
98.165.218.139:39630&lt;br /&gt;
68.112.182.125:3685&lt;br /&gt;
68.117.204.57:23482&lt;br /&gt;
65.12.154.25:40760&lt;br /&gt;
69.180.47.169:5711&lt;br /&gt;
75.138.40.173:24987&lt;br /&gt;
98.201.19.0:33662&lt;br /&gt;
70.187.2.144:6348&lt;br /&gt;
68.186.209.107:14429&lt;br /&gt;
69.159.7.61:6348&lt;br /&gt;
76.208.176.196:48199&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * For combining a hostfile and urlfile request:&lt;br /&gt;
          o Warning: This is non-standard.&lt;br /&gt;
          o Example Cache Output (Beacon Cache) For bfile Command&lt;br /&gt;
                + Example &amp;quot;bfile Output&amp;quot; URL: Ex: http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;bfile=1&lt;br /&gt;
                      # Example Host and URL Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting the hosts and urls with a pong combined&lt;br /&gt;
&lt;br /&gt;
PONG Beacon Cache 0.1.5D Beta&lt;br /&gt;
71.8.84.153:3915&lt;br /&gt;
99.248.214.157:27529&lt;br /&gt;
69.60.241.55:16369&lt;br /&gt;
193.253.239.246:30218&lt;br /&gt;
68.156.175.121:6348&lt;br /&gt;
71.179.7.241:18344&lt;br /&gt;
74.196.22.241:6348&lt;br /&gt;
12.210.197.194:10531&lt;br /&gt;
222.150.143.77:10000&lt;br /&gt;
58.85.231.135:6346&lt;br /&gt;
24.141.199.164:20205&lt;br /&gt;
72.175.201.195:6348&lt;br /&gt;
69.81.129.228:4880&lt;br /&gt;
97.81.221.63:13219&lt;br /&gt;
70.15.130.224:7759&lt;br /&gt;
216.211.188.106:51903&lt;br /&gt;
75.167.168.156:48660&lt;br /&gt;
12.214.14.3:35916&lt;br /&gt;
76.177.244.106:24180&lt;br /&gt;
98.165.218.139:39630&lt;br /&gt;
68.112.182.125:3685&lt;br /&gt;
68.117.204.57:23482&lt;br /&gt;
65.12.154.25:40760&lt;br /&gt;
69.180.47.169:5711&lt;br /&gt;
75.138.40.173:24987&lt;br /&gt;
98.201.19.0:33662&lt;br /&gt;
70.187.2.144:6348&lt;br /&gt;
68.186.209.107:14429&lt;br /&gt;
69.159.7.61:6348&lt;br /&gt;
76.208.176.196:48199&lt;br /&gt;
http://gwc.frodoslair.net/skulls/skulls.php&lt;br /&gt;
http://bbs.robertwoolley.co.uk/GWebCache/gcache.php&lt;br /&gt;
http://g2.tjtech.org/g2/&lt;br /&gt;
http://g2.tjtech.org/g2/index.php&lt;br /&gt;
http://gwc.monnsta.net/&lt;br /&gt;
http://holograph.uni.cc/other/skulls.php&lt;br /&gt;
http://gwc.nickstallman.net/&lt;br /&gt;
http://gwc.eod.cc/skulls.php&lt;br /&gt;
http://gwc.frodoslair.net/skulls/skulls&lt;br /&gt;
http://gwc.werwin.net/skulls.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * Variables&lt;br /&gt;
          o Mandatory&lt;br /&gt;
                + ping:&lt;br /&gt;
                      # Response should have this always: PONG&lt;br /&gt;
                      # After, put the cache&#039;s name. ex: PONG fakecache 0.01&lt;br /&gt;
                + client:&lt;br /&gt;
                      # Four letter code of the client. ex: RAZA &lt;br /&gt;
                + version:&lt;br /&gt;
                      # Version number of the client. &lt;br /&gt;
                + urlfile:&lt;br /&gt;
                      # Used by the client to request alternate cache urls. &lt;br /&gt;
                + hostfile:&lt;br /&gt;
                      # Used by the client to request IPs with port numbers attached. &lt;br /&gt;
                + url:&lt;br /&gt;
                      # Client update giving an alternate cache URL.&lt;br /&gt;
                      # Formatted with a http:// prefix to each cache. &lt;br /&gt;
                + ip:&lt;br /&gt;
                      # Client update giving one&#039;s IP to submit. &lt;br /&gt;
                + url1:&lt;br /&gt;
                      # OLD OUTDATED Client update giving an alternate cache URL.&lt;br /&gt;
                      # Formatted with a http:// prefix to each cache. &lt;br /&gt;
                + ip1:&lt;br /&gt;
                      # OLD OUTDATED Client update giving one&#039;s IP to submit. &lt;br /&gt;
          o Optional&lt;br /&gt;
                + bfile:&lt;br /&gt;
                      # For clients to request both URLs and IPs from the cache at the same time. &lt;br /&gt;
                + statfile:&lt;br /&gt;
                      # Statistics of the cache request:&lt;br /&gt;
                            * First line: Total requests of the cache number.&lt;br /&gt;
                            * Second line: Requests of the cache an hour number.&lt;br /&gt;
                            * Third line: Updates of the cache an hour number. &lt;br /&gt;
&lt;br /&gt;
Specification 2:&lt;br /&gt;
&lt;br /&gt;
    * Networks Served&lt;br /&gt;
          o Gnutella, Gnutella2, etc. &lt;br /&gt;
    * Format&lt;br /&gt;
          o Information Output&lt;br /&gt;
                + Starts with: I|&lt;br /&gt;
                      # Categories&lt;br /&gt;
                            * Pong (ping variable response) - Described below under the topic: variables.&lt;br /&gt;
                            * Update Status Response&lt;br /&gt;
                                  o Format: I|update&lt;br /&gt;
                                  o Responses&lt;br /&gt;
                                        + I|update|OK&lt;br /&gt;
                                              # - Everything went fine. &lt;br /&gt;
                                        + I|update|OK|WARNING&lt;br /&gt;
                                              # Small warning. &lt;br /&gt;
                                        + I|update|WARNING&lt;br /&gt;
                                              # Severe warning &lt;br /&gt;
                            * Plain Warnings&lt;br /&gt;
                                  o Format: I|WARNING&lt;br /&gt;
                                        + Append any warning messages after it - Ex: I|WARNING|You came back too early &lt;br /&gt;
                            * Extra Info - Described below under the topic: variables. &lt;br /&gt;
          o Host Output&lt;br /&gt;
                + Starts with: H|&lt;br /&gt;
                + Add the IP with its port:&lt;br /&gt;
                      # Ex: H|0.0.0.0:6346 &lt;br /&gt;
                + Add the time, thereafter, of the host&#039;s (In seconds*) time in cache:&lt;br /&gt;
                      # Ex: H|0.0.0.0:6346|45 &lt;br /&gt;
                + If cluster exists with cluster=somerandomwords&lt;br /&gt;
                      # Add the clustered words after the host&#039;s age:&lt;br /&gt;
                            * Ex: H|0.0.0.0:6346|45|somerandomwords &lt;br /&gt;
          o URL Output&lt;br /&gt;
                + Starts with: U|&lt;br /&gt;
                + Add the URL with http:// before it, plus the port (if it&#039;s not 80).&lt;br /&gt;
                      # Ex: U|http://somerandomcache.com/ &lt;br /&gt;
                + Add the time, thereafter, of the URL&#039;s time (In seconds*) in cache:&lt;br /&gt;
                      # Ex: U|http://somerandomcache.com/|45 &lt;br /&gt;
          o Example Cache Output (Beacon Cache) For get Command&lt;br /&gt;
                + Example URL: http://grantgalitz.com/Beacon/gwc.php?get=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;net=gnutella2&amp;amp;ping=1&lt;br /&gt;
                      # Example &amp;quot;Get&amp;quot; Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting the hosts and urls with a pong combined&lt;br /&gt;
&lt;br /&gt;
I|pong|Beacon Cache 0.1.5D Beta|gnutella-gnutella2&lt;br /&gt;
H|65.9.200.243:4968|248261&lt;br /&gt;
H|68.228.129.75:44599|242678&lt;br /&gt;
H|98.240.196.122:8206|240719&lt;br /&gt;
H|76.104.12.133:14921|218273&lt;br /&gt;
H|69.136.1.12:3924|211610&lt;br /&gt;
H|81.154.208.71:8595|174402&lt;br /&gt;
H|97.96.105.51:2076|153610&lt;br /&gt;
H|74.192.153.212:39340|144203&lt;br /&gt;
H|72.190.106.57:12584|132984&lt;br /&gt;
H|78.93.71.132:12334|125668&lt;br /&gt;
H|82.43.248.184:27560|97974&lt;br /&gt;
H|196.205.224.97:6357|86763&lt;br /&gt;
H|74.129.219.30:33172|82005&lt;br /&gt;
H|76.104.12.133:19185|57182&lt;br /&gt;
H|69.59.83.131:18442|38628&lt;br /&gt;
U|http://www.k33bz.com/g2/bazooka.php|248639&lt;br /&gt;
U|http://gwebcache.ns1.net/|248592&lt;br /&gt;
U|http://gwc2.wodi.org/skulls.php|248384&lt;br /&gt;
U|http://gwc.guufshop.com/skulls/skulls.php|248322&lt;br /&gt;
U|http://groovy.syxy.com/up/skulls.php|248300&lt;br /&gt;
U|http://g2.tjtech.org/g2/index.php|247770&lt;br /&gt;
U|http://midian.jayl.de/g2/bazooka.php|240719&lt;br /&gt;
U|http://www.dom2porno.info/skulls/skulls.php|207473&lt;br /&gt;
U|http://gwc.frodoslair.net/skulls/skulls|125668&lt;br /&gt;
U|http://holograph.uni.cc/other/skulls.php|9642&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * Variables&lt;br /&gt;
          o Mandatory&lt;br /&gt;
                + ping:&lt;br /&gt;
                      # Main Part: I|pong|&lt;br /&gt;
                      # Then add the cache name and version: I|pong|fakecache 0.01&lt;br /&gt;
                      # Then lastly add the network support:&lt;br /&gt;
                            * I|pong|fakecache 0.01|gnutella&lt;br /&gt;
                                  o - Gnutella only &lt;br /&gt;
                            * I|pong|fakecache 0.01|gnutella2&lt;br /&gt;
                                  o - Gnutella2 only &lt;br /&gt;
                            * I|pong|fakecache 0.01|gnutella-gnutella2&lt;br /&gt;
                                  o - Gnutella and Gnutella2 served &lt;br /&gt;
                + get:&lt;br /&gt;
                      # Used by clients to requests alternate cache URLs along with IPs and their port numbers. &lt;br /&gt;
                + update:&lt;br /&gt;
                      # url:&lt;br /&gt;
                            * Client update giving an alternate cache URL.&lt;br /&gt;
                            * Formatted with a http:// prefix to each cache. &lt;br /&gt;
                      # ip:&lt;br /&gt;
                            * Client update giving one&#039;s IP to submit. &lt;br /&gt;
                + net:&lt;br /&gt;
                      # Which network to serve the client.&lt;br /&gt;
                            * Gnutella&lt;br /&gt;
                                  o Ex: net=gnutella &lt;br /&gt;
                            * Gnutella2&lt;br /&gt;
                                  o Ex: net=gnutella2 &lt;br /&gt;
                            * Should always be lowercase&lt;br /&gt;
                                  o GWCs should automatically convert network name given to lowercase to prevent Net ID mismatches &lt;br /&gt;
&lt;br /&gt;
solely on case alone.&lt;br /&gt;
&lt;br /&gt;
    *&lt;br /&gt;
          o&lt;br /&gt;
                + client:&lt;br /&gt;
                      # Four letter code of the client. ex: RAZA &lt;br /&gt;
                + version:&lt;br /&gt;
                      # Version number of the client. &lt;br /&gt;
          o Optional&lt;br /&gt;
                + cluster:&lt;br /&gt;
                      # To add extra info to an IP update.&lt;br /&gt;
                            * Output by cache: H|0.0.0.0|AGE OF HOST (Seconds)|clustering some bull**** &lt;br /&gt;
                + statfile:&lt;br /&gt;
                      # Exactly like the specification 1 statfile (Same routine and output style).&lt;br /&gt;
                      # Statistics of the cache request:&lt;br /&gt;
                            * First line: Total requests of the cache number.&lt;br /&gt;
                            * Second line: Requests of the cache an hour number.&lt;br /&gt;
                            * Third line: Updates of the cache an hour number. &lt;br /&gt;
&lt;br /&gt;
Specification 2.1&lt;br /&gt;
&lt;br /&gt;
    * This is an extension of specification 2, not a separate specification!&lt;br /&gt;
    * Pong extension&lt;br /&gt;
          o Append the networks supported joined by a hyphen &#039;-&#039;.&lt;br /&gt;
          o Used for client-side validation of networks supported and for network support reporting to other web caches.&lt;br /&gt;
          o Format:&lt;br /&gt;
                + I|pong|cache name|network names joined by &#039;-&#039;&lt;br /&gt;
                + Format Examples:&lt;br /&gt;
                      # I|pong|fakecache 0.01|gnutella&lt;br /&gt;
                            * - Gnutella only &lt;br /&gt;
                      # I|pong|fakecache 0.01|gnutella2&lt;br /&gt;
                            * - Gnutella2 only &lt;br /&gt;
                      # I|pong|fakecache 0.01|gnutella-gnutella2&lt;br /&gt;
                            * - Gnutella and Gnutella2 served &lt;br /&gt;
    * Host Output&lt;br /&gt;
          o Just like specification 2, but with more fields supported for host output.&lt;br /&gt;
                + H|ip:port|age in cache|clustering|leaves|4 letter vendor code|reported uptime of host|max. leaves possible&lt;br /&gt;
                      # The host, age, and clustering fields are all still the same as in specification 2.&lt;br /&gt;
                      # The leaf count of the hub reported is in the 5th field.&lt;br /&gt;
                      # The vendor code with version number is in the 6th field. &lt;br /&gt;
    * Request Control Variables:&lt;br /&gt;
          o getleaves&lt;br /&gt;
                + Used to obtain leaf counts of hubs given&lt;br /&gt;
                + 4th field ultilized for current leaf count.&lt;br /&gt;
                + 7th field ultilized for maximum leaf slots possible.&lt;br /&gt;
                + Use this as &#039;getleaves=1&#039; or &#039;getleaves&#039; to enable. &lt;br /&gt;
          o getclusters&lt;br /&gt;
                + Enables/Disables clustering.&lt;br /&gt;
                + Use this as &#039;getclusters=1&#039;.&lt;br /&gt;
                + Using &#039;getclusters&#039; or &#039;getclusters=0&#039; disables cluster output. &lt;br /&gt;
          o getvendors&lt;br /&gt;
                + Used to obtain the vendor code w/ version number of the hubs given.&lt;br /&gt;
                + Found in the 5th field.&lt;br /&gt;
                + Use this as &#039;getvendors=1&#039; or &#039;getvendors&#039; to enable. &lt;br /&gt;
          o getuptime&lt;br /&gt;
                + Used to obtain the vendor code w/ version number of the hubs given.&lt;br /&gt;
                + Value is static, do not change the value given when time passes.&lt;br /&gt;
                + Found in the 6th field.&lt;br /&gt;
                + Use this as &#039;getuptime=1&#039; or &#039;getuptime&#039; to enable. &lt;br /&gt;
          o spec&lt;br /&gt;
                + To force the specification parameter&lt;br /&gt;
                + Currently is only supported by Beacon Cache II &lt;br /&gt;
          o pv&lt;br /&gt;
                + Similar to the &#039;spec&#039; parameter, except that it does not force, instead it simply negotiates the specification. &lt;br /&gt;
    * Special Data Requests&lt;br /&gt;
          o info&lt;br /&gt;
                + Outputs extra details of your cache.&lt;br /&gt;
                      # Start with the informational response: I|&lt;br /&gt;
                            * Ex: I|open-source|1 &lt;br /&gt;
          o support&lt;br /&gt;
                + Outputs USEFUL details of your cache.&lt;br /&gt;
                      # Start with the informational response: I|&lt;br /&gt;
                            * Ex: I|support|gnutella2 &lt;br /&gt;
          o getnetworks&lt;br /&gt;
                + Outputs the enabled networks in two formats.&lt;br /&gt;
                      # Start with the informational response: I|&lt;br /&gt;
                            * For the &#039;I|nets|&#039; line&lt;br /&gt;
                                  o The third field contains the supported networks joined by &#039;-&#039;. &lt;br /&gt;
                            * For the &#039;I|networks|&#039; line&lt;br /&gt;
                                  o Interpret the fields from 3 and beyond as individual network names to challenge against. &lt;br /&gt;
                      # Examples&lt;br /&gt;
                            *&lt;br /&gt;
                                  o I|nets|gnutella-gnutella2&lt;br /&gt;
                                  o I|networks|gnutella|gnutella2 &lt;br /&gt;
    * Update Extension Variables:&lt;br /&gt;
          o x_leaves&lt;br /&gt;
                + Number of leaves running on a given hub or ultrapeer.&lt;br /&gt;
                + Value must not be greater than an integer value of 2047.&lt;br /&gt;
                + Note: It is important to know that PHP automaticaly replace dots with underscores, so to keep compatibility with old/new version of clients all caches should support both variants, example: x.leaves x_leaves&lt;br /&gt;
          o x_max&lt;br /&gt;
                + Maximum number of leaves possible on a given hub or ultrapeer.&lt;br /&gt;
                + Value must not be greater than an integer value of 2047. &lt;br /&gt;
          o uptime&lt;br /&gt;
                + Value submitted must be an integer value of the number of seconds of uptime.&lt;br /&gt;
                + Value must not be greater than an integer value of 1 year (31536000) and less than 1 hour (60). &lt;br /&gt;
&lt;br /&gt;
Pinging Caches With Your Cache&lt;br /&gt;
&lt;br /&gt;
    * Please follow this standard:&lt;br /&gt;
          o Client: TEST&lt;br /&gt;
          o Version: Your Cache&#039;s Name&lt;br /&gt;
                + The old value for &amp;quot;version&amp;quot; was 1 &lt;br /&gt;
    * Some variables to attach to the ping (compatibility):&lt;br /&gt;
          o multi&lt;br /&gt;
                + Used by some gwcs in their pings to other gwcs.&lt;br /&gt;
                + It tells the pinged cache to ignore the &amp;quot;net&amp;quot; parameter (so it should never say network not supported) and outputting the pong using this format, if possible, &amp;quot;I|pong|[cache name] [cache version]|[supported networks list]|[url adding is enabled]&amp;quot; - example: I|pong|Skulls 0.2.8a|gnutella-gnutella2|1&lt;br /&gt;
                + Used by Skulls GWC only, supported by Skulls and Beacon Cache II. &lt;br /&gt;
          o cache&lt;br /&gt;
                + This is added to every request made by some gwcs, it is for statistical purposes only.&lt;br /&gt;
                + It simply tells the remote cache that the client is a GWC. &lt;br /&gt;
    * Help&lt;br /&gt;
          o For PHP&lt;br /&gt;
                + Use the fsockopen() function to open a connection to a cache.&lt;br /&gt;
                      # Make sure you &amp;quot;write&amp;quot; to the fsockopen carry value to open the GWC&#039;s target file.&lt;br /&gt;
                            * http://us.php.net/manual/en/function.fsockopen.php &lt;br /&gt;
&lt;br /&gt;
Variable Combination Standards&lt;br /&gt;
&lt;br /&gt;
    * Net variable decides specification!&lt;br /&gt;
          o There are many ways to determine spec., but going with net is the safe way.&lt;br /&gt;
          o Skulls GWC does not use the network parameter to determine specification level.&lt;br /&gt;
          o Beacon Cache (I and II) uses the network parameter to determine the specification level. &lt;br /&gt;
    * Your cache needs to be able to process certain combinations of variables.&lt;br /&gt;
          o Update variable&lt;br /&gt;
                + Update should not fail if absent if spec. 2.&lt;br /&gt;
                      # A Specification 2 parameter. &lt;br /&gt;
    * Spec 1 parameters used in Spec 2:&lt;br /&gt;
          o Should still accept hostfile and urlfile responses for spec. 2.&lt;br /&gt;
                + Beacon Cache (I and II) accepts these parameters on spec 2. &lt;br /&gt;
    * The &#039;spec&#039; paameter can be used to force a specification:&lt;br /&gt;
          o Only known to exist in Beacon Cache II, it can force the request to be handled as a specification 1 or 2 request.&lt;br /&gt;
          o Spec 1 = &#039;spec=1&#039;&lt;br /&gt;
          o Spec 2 = &#039;spec=2&#039;&lt;br /&gt;
          o If &#039;spec&#039; is not equal to any current spec, then default to the predetermined spec. &lt;br /&gt;
    * Multiple variable requests&lt;br /&gt;
          o If for instance a ping and request exist, you should always handle them properly.&lt;br /&gt;
                + Same goes with other combos like an update and ping, statfile + ping and info. &lt;br /&gt;
          o Handle multiple variables as BEST as possible!&lt;br /&gt;
                + Some scanners and GWCs like to fit all their requests into one URL send. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;row recovery, end&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Further Information:&lt;br /&gt;
&lt;br /&gt;
* [http://www.gnucleus.com/gwebcache/ Original GWC site]&lt;br /&gt;
** [http://gnucleus.sourceforge.net/gwebcache/specs.html GWC Spec. 1]&lt;br /&gt;
** [http://gnucleus.sourceforge.net/gwebcache/newgwc.html GWC Spec. 2] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;content recovered from last aviable backup&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Gnutella Web Cache===&lt;br /&gt;
Gnutella requires Gnutella Web Caches (GWC) to get IPs to establish a connection to the network.  These are critical to ensuring the health of the network.  If you have a dedicated server and can spare some extra bandwidth then please consider running a GWC.  People that don&#039;t have a dedicated server or are on normal broadband consumer lines should not run a cache from home.&lt;br /&gt;
&lt;br /&gt;
A GWC is a simple script that can be put on any webserver that supports one of the following scripting languages:&lt;br /&gt;
*JSP (Java Servlet)&lt;br /&gt;
**[http://web.archive.org/web/20061108091447/http://www.mager.org/GWebCache/ Java Servlet GWebCache Application (Archive.org)]&lt;br /&gt;
*C&lt;br /&gt;
**[http://ghostwhitecrab.com/crab/ GhostWhiteCrab]&lt;br /&gt;
*Perl &lt;br /&gt;
**[http://www.jonatkins.com/perlgcache/ Jon Atkins&#039; perlgcache] &lt;br /&gt;
**The original [http://www.gnucleus.com/gwebcache/dist/ GnuWebCache]&lt;br /&gt;
*PHP &lt;br /&gt;
**[http://gwcii.sourceforge.net/ PHPGnuCacheII] - MySQL&lt;br /&gt;
**[http://www.bazookanetworks.com Bazooka G2WC] (recommended) - flat files&lt;br /&gt;
**[http://sourceforge.net/projects/skulls/ Skulls! Multi-Network WebCache] - flat files&lt;br /&gt;
=== Further Information: ===&lt;br /&gt;
* [http://www.gnucleus.com/gwebcache/ Original GWC site]&lt;br /&gt;
&lt;br /&gt;
[[Category:External Links]]&lt;/div&gt;</summary>
		<author><name>Ale5000</name></author>
	</entry>
	<entry>
		<id>https://shareaza.sourceforge.net/w/index.php?title=GWC_specs&amp;diff=11506</id>
		<title>GWC specs</title>
		<link rel="alternate" type="text/html" href="https://shareaza.sourceforge.net/w/index.php?title=GWC_specs&amp;diff=11506"/>
		<updated>2015-03-25T15:07:40Z</updated>

		<summary type="html">&lt;p&gt;Ale5000: Moved the original GnuWebCache to the bottom since the site is died / fixed impagination&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;For general information on GWCs, have a look at the [[GWC]] Wiki page.&#039;&#039;&lt;br /&gt;
{{do not translate}}&lt;br /&gt;
This page is thought to give an overview over the GWC specifications as they are implemented into Shareaza.&lt;br /&gt;
&lt;br /&gt;
A GWC is a simple script that can be put on any webserver that supports one of the following scripting languages: &lt;br /&gt;
&lt;br /&gt;
* JSP (Java Servlet) &lt;br /&gt;
** [http://www1.mager.org/GWebCache/ Jums Web Cache] (Excellent for heavy loads) &lt;br /&gt;
* C &lt;br /&gt;
** [http://wiki.limewire.org/index.php?title=GhostWhiteCrab GhostWhiteCrab] (For dedicated server environments and people who know how to compile C source code!) &lt;br /&gt;
* ASP &lt;br /&gt;
** [http://www.edazzle.net/downloads/gerry.zip Gerry GWC] &lt;br /&gt;
** [https://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=7846&amp;amp;lngWId=4 Lynn (v.s. 0.5)] &lt;br /&gt;
** [https://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=7731&amp;amp;lngWId=4 Lynn (v.s. 0.4)] &lt;br /&gt;
** [http://www.poundwebhosting.com/cgi-bin/lynnx.asp LynnX] &lt;br /&gt;
* Perl &lt;br /&gt;
** [http://www.jonatkins.com/perlgcache/ Jon Atkins&#039; perlgcache] &lt;br /&gt;
** The original [http://www.gnucleus.com/gwebcache/dist/ GnuWebCache] &lt;br /&gt;
* &#039;&#039;&#039;PHP&#039;&#039;&#039; &#039;&#039;(Tip: PHP GWCs are usually the easiest to run and setup on a server.)&#039;&#039;&lt;br /&gt;
** [http://gwcii.sourceforge.net/ PHPGnuCacheII] &lt;br /&gt;
** [http://www.bazookanetworks.com/ Bazooka G2WC] &lt;br /&gt;
** [http://sourceforge.net/projects/skulls/ Skulls! Multi-Network WebCache] &lt;br /&gt;
** [http://sourceforge.net/projects/beaconcache/ Beacon Cache] &lt;br /&gt;
** [http://code.google.com/p/cachechu/ Cachechu G2WC] &lt;br /&gt;
** The original [http://www.gnucleus.com/gwebcache/dist/ GnuWebCache] &#039;&#039;(PHP version is no longer supported)&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
== Breakdown Of The Gnutella Web Caches: == &lt;br /&gt;
{{RecoveredPage|I recently put this into a table. The contents need to be verified -- [[User:Cyko 01|Cyko 01]]}}&lt;br /&gt;
&lt;br /&gt;
{| width= auto; style=&amp;quot;font-size: 85%; text-align: center;text-valign: middle;&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Cache:&lt;br /&gt;
! rowspan=1 |Gnutella:&lt;br /&gt;
! rowspan=1 |Gnutella2:&lt;br /&gt;
! rowspan=1 |Spec 1:&lt;br /&gt;
! rowspan=1 |Spec 2:&lt;br /&gt;
! rowspan=1 |Flat-File:&lt;br /&gt;
! rowspan=1 |SQL:&lt;br /&gt;
! rowspan=1 |Installer:&lt;br /&gt;
! rowspan=1 |Other Networks:&lt;br /&gt;
! rowspan=1 |Different network instances:&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Beacon Cache (Core 2)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|style=&amp;quot;background: #CCFFCC;&amp;quot;| Yes (As of 0.2.0 Alpha)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Beacon Cache (Core 1)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Skulls&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|JumsWebCache&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|GnuWebCache (Perl)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|GnuWebCache (PHP) &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|GhostWhiteCrab(GWC) &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|style=&amp;quot;background: #FFFFCC;&amp;quot;| N/A&lt;br /&gt;
|style=&amp;quot;background: #FFFFCC;&amp;quot;| N/A&lt;br /&gt;
|style=&amp;quot;background: #FFFFCC;&amp;quot;| N/A&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|PHPGnuCacheII &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Bazooka &lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Cachechu&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Perlgcache&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Gerry GWC (v2)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Gerry GWC (v1)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Lynn&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|LynnX&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Shareaza Specific Details == &lt;br /&gt;
&lt;br /&gt;
{{RecoveredPage|Warninig: here I have pasted better formatted recovery, but not verified. Row recovery has been mooved below as I don&#039;t know if anybody has made any changes in it. If not then row recovery can be deleted. Paste starts from &amp;gt;&amp;gt;Shareaza Specific Details&amp;lt;&amp;lt;, here, and ends at second &amp;gt;&amp;gt;Shareaza Specific Details&amp;lt;&amp;lt; I hope it is visible.  --[[User:Ocexyz|Ocexyz]] 23:27, 27 July 2009 (UTC)}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Get String Breakdown:&#039;&#039;&#039; &lt;br /&gt;
* Update a leaf &lt;br /&gt;
** &amp;quot;?update=1&amp;amp;ip=(ip):(port)&amp;amp;x_leaves=(leaf count) &lt;br /&gt;
* Ping Variable &lt;br /&gt;
** Appends &amp;amp;ping=1 to identify the cache name in debug messages (for gnutella and gnutella2 in 2.4.0.0, but only for gnutella2 now in 2.4.0.X for spec1 cache compatibility). &lt;br /&gt;
** This feature new to Shareaza. &lt;br /&gt;
* Network Variable &lt;br /&gt;
** Appends &amp;amp;net=gnutella2 on Gnutella2 queries. &lt;br /&gt;
** Does NOT append a network variable on Gnutella(1) queries. &lt;br /&gt;
* Client Name / Version Format (2.4.0.0 and earlier): &lt;br /&gt;
** &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) ) &lt;br /&gt;
** &amp;amp;version=(Shareaza&#039;s version) &lt;br /&gt;
* Client Name / Version Format (2.4.0.X): &lt;br /&gt;
** If Gnutella &lt;br /&gt;
*** &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) ) &lt;br /&gt;
*** &amp;amp;version=(Shareaza&#039;s version) &lt;br /&gt;
** If Gnutella2 &lt;br /&gt;
*** &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) )+(Shareaza&#039;s version) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GWC Response Matching:&#039;&#039;&#039; &lt;br /&gt;
* i| &lt;br /&gt;
** Informational output alone will not be taken as GWC &#039;success.&#039; &lt;br /&gt;
* i|access|period|(time in sec.) &lt;br /&gt;
** Time in seconds before Shareaza is allowed to make a request to the cache. &lt;br /&gt;
* i|update|period|(time in sec.) &lt;br /&gt;
** Time in seconds before Shareaza is allowed to update to the cache. &lt;br /&gt;
* i|force|remove and i|update|warning|bad url &lt;br /&gt;
** Remove the GWC from the internal list. &lt;br /&gt;
* Some Response Matches (added in 2.3.1.X) &lt;br /&gt;
** i|NO-URL-NO-HOSTS &lt;br /&gt;
*** Outputs warning of the cache being totally empty to the system log. &lt;br /&gt;
** i|NO-URL &lt;br /&gt;
*** Outputs warning of the cache having no alternative URLs to the system log. &lt;br /&gt;
** i|NO-HOSTS &lt;br /&gt;
*** Outputs warning of the cache having no hosts to the system log. &lt;br /&gt;
** i|warning| &lt;br /&gt;
*** Outputs warning of the cache to the system log. &lt;br /&gt;
** ERROR Something Failed &lt;br /&gt;
*** Outputs warning of the cache to the system log(Buggy Bazooka GWCs workaround). &lt;br /&gt;
** i|warning|You came back too early (2.3.1.X) &lt;br /&gt;
** i|warning|client|early (2.3.1.X) &lt;br /&gt;
** WARNING: You came back too early (2.3.1.X) &lt;br /&gt;
** ERROR: Client returned too early (2.3.1.X) &lt;br /&gt;
*** Flood detection for the update side. &lt;br /&gt;
*** Outputs GWebCache(update) Too many connection attempts to the system log. &lt;br /&gt;
** too early (2.3.1.X) &lt;br /&gt;
** early (2.4.0.X) &lt;br /&gt;
*** Flood detection for the request side. &lt;br /&gt;
*** Outputs GWebCache URL: Too many connection attempts to the system log. &lt;br /&gt;
** i|update|OK &lt;br /&gt;
*** Outputs &amp;quot;GWebCache(v2) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
** OK &lt;br /&gt;
*** Outputs &amp;quot;GWebCache(v1) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
&lt;br /&gt;
== Gnutella Web Cache Specifications ==&lt;br /&gt;
==== Specification 1: ====&lt;br /&gt;
* &#039;&#039;&#039;Networks Served&#039;&#039;&#039; &lt;br /&gt;
** Gnutella &lt;br /&gt;
* &#039;&#039;&#039;Format&#039;&#039;&#039; &lt;br /&gt;
** Update went fine: &lt;br /&gt;
*** Ex: OK &lt;br /&gt;
** Update Warning (Small prob., not that bad): &lt;br /&gt;
*** Ex: OKWARNING: Error Message &lt;br /&gt;
&lt;br /&gt;
* Severe Warning (No &#039;OK&#039; message sent) &lt;br /&gt;
** Ex: WARNING: Error Message&lt;br /&gt;
&lt;br /&gt;
* URL Output: &lt;br /&gt;
** Ex: [http://somefreakinrandomcache.com/cache/gcache.php http://somefreakinrandomcache.com/cache/gcache.php] &lt;br /&gt;
*** OR - WITH A PORT NUMBER (If not 80) &lt;br /&gt;
**** Ex: [http://somefreakinrandomcache.com:8080/cache/gcache.php http://somefreakinrandomcache.com:8080/cache/gcache.php] &lt;br /&gt;
* Host Output: &lt;br /&gt;
** Ex: 66.132.55.12:6346 &lt;br /&gt;
* Pong (ping variable response) - was explained below under the topic: variables. &lt;br /&gt;
* &#039;&#039;&#039;Example Cache Output (Beacon Cache) For urlfile Command&#039;&#039;&#039; &lt;br /&gt;
** Example &amp;quot;urlfile Output&amp;quot; URL: Ex: [http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;urlfile=1 http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;urlfile=1] &lt;br /&gt;
*** Example URL Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Getting urls with a pong combined&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| PONG Beacon Cache 0.1.5D Beta[http://gwc.frodoslair.net/skulls/skulls.php http://gwc.frodoslair.net/skulls/skulls.php][http://bbs.robertwoolley.co.uk/GWebCache/gcache.php http://bbs.robertwoolley.co.uk/GWebCache/gcache.php][http://g2.tjtech.org/g2/ http://g2.tjtech.org/g2/][http://g2.tjtech.org/g2/index.php http://g2.tjtech.org/g2/index.php][http://gwc.monnsta.net/ http://gwc.monnsta.net/][http://holograph.uni.cc/other/skulls.php http://holograph.uni.cc/other/skulls.php][http://gwc.nickstallman.net/ http://gwc.nickstallman.net/][http://gwc.eod.cc/skulls.php http://gwc.eod.cc/skulls.php][http://gwc.frodoslair.net/skulls/skulls http://gwc.frodoslair.net/skulls/skulls][http://gwc.werwin.net/skulls.php http://gwc.werwin.net/skulls.php] &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
* &#039;&#039;&#039;Example Cache Output (Beacon Cache) For hostfile Command&#039;&#039;&#039; &lt;br /&gt;
** Example &amp;quot;hostfile Output&amp;quot; URL: Ex: [http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;hostfile=1 http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;hostfile=1] &lt;br /&gt;
*** Example Host Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Getting the hosts with a pong combined&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| PONG Beacon Cache 0.1.5D Beta71.8.84.153:391599.248.214.157:2752969.60.241.55:16369193.253.239.246:3021868.156.175.121:634871.179.7.241:1834474.196.22.241:634812.210.197.194:10531222.150.143.77:1000058.85.231.135:634624.141.199.164:2020572.175.201.195:634869.81.129.228:488097.81.221.63:1321970.15.130.224:7759216.211.188.106:5190375.167.168.156:4866012.214.14.3:3591676.177.244.106:2418098.165.218.139:3963068.112.182.125:368568.117.204.57:2348265.12.154.25:4076069.180.47.169:571175.138.40.173:2498798.201.19.0:3366270.187.2.144:634868.186.209.107:1442969.159.7.61:634876.208.176.196:48199&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
* &#039;&#039;&#039;For combining a hostfile and urlfile request:&#039;&#039;&#039; &lt;br /&gt;
** Warning: This is non-standard. &lt;br /&gt;
** &#039;&#039;&#039;Example Cache Output (Beacon Cache) For bfile Command&#039;&#039;&#039; &lt;br /&gt;
*** Example &amp;quot;bfile Output&amp;quot; URL: Ex: [http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;bfile=1 http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;bfile=1] &lt;br /&gt;
**** Example Host and URL Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Getting the hosts and urls with a pong combined&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| PONG Beacon Cache 0.1.5D Beta71.8.84.153:391599.248.214.157:2752969.60.241.55:16369193.253.239.246:3021868.156.175.121:634871.179.7.241:1834474.196.22.241:634812.210.197.194:10531222.150.143.77:1000058.85.231.135:634624.141.199.164:2020572.175.201.195:634869.81.129.228:488097.81.221.63:1321970.15.130.224:7759216.211.188.106:5190375.167.168.156:4866012.214.14.3:3591676.177.244.106:2418098.165.218.139:3963068.112.182.125:368568.117.204.57:2348265.12.154.25:4076069.180.47.169:571175.138.40.173:2498798.201.19.0:3366270.187.2.144:634868.186.209.107:1442969.159.7.61:634876.208.176.196:48199[http://gwc.frodoslair.net/skulls/skulls.php http://gwc.frodoslair.net/skulls/skulls.php][http://bbs.robertwoolley.co.uk/GWebCache/gcache.php http://bbs.robertwoolley.co.uk/GWebCache/gcache.php][http://g2.tjtech.org/g2/ http://g2.tjtech.org/g2/][http://g2.tjtech.org/g2/index.php http://g2.tjtech.org/g2/index.php][http://gwc.monnsta.net/ http://gwc.monnsta.net/][http://holograph.uni.cc/other/skulls.php http://holograph.uni.cc/other/skulls.php][http://gwc.nickstallman.net/ http://gwc.nickstallman.net/][http://gwc.eod.cc/skulls.php http://gwc.eod.cc/skulls.php][http://gwc.frodoslair.net/skulls/skulls http://gwc.frodoslair.net/skulls/skulls][http://gwc.werwin.net/skulls.php http://gwc.werwin.net/skulls.php] &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Variables&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Mandatory&#039;&#039;&#039; &lt;br /&gt;
** ping: &lt;br /&gt;
*** Response should have this always: PONG&lt;br /&gt;
*** After, put the cache&#039;s name. ex: PONG fakecache 0.01&lt;br /&gt;
** client: &lt;br /&gt;
*** Four letter code of the client. ex: RAZA &lt;br /&gt;
** version: &lt;br /&gt;
*** Version number of the client. &lt;br /&gt;
** urlfile: &lt;br /&gt;
*** Used by the client to request alternate cache urls. &lt;br /&gt;
** hostfile: &lt;br /&gt;
*** Used by the client to request IPs with port numbers attached. &lt;br /&gt;
** url: &lt;br /&gt;
*** Client update giving an alternate cache URL. &lt;br /&gt;
*** Formatted with a http:// prefix to each cache. &lt;br /&gt;
** ip: &lt;br /&gt;
*** Client update giving one&#039;s IP to submit. &lt;br /&gt;
** url1: &lt;br /&gt;
*** OLD OUTDATED Client update giving an alternate cache URL. &lt;br /&gt;
*** Formatted with a http:// prefix to each cache. &lt;br /&gt;
** ip1: &lt;br /&gt;
*** OLD OUTDATED Client update giving one&#039;s IP to submit. &lt;br /&gt;
* &#039;&#039;&#039;Optional&#039;&#039;&#039; &lt;br /&gt;
** bfile: &lt;br /&gt;
*** For clients to request both URLs and IPs from the cache at the same time. &lt;br /&gt;
** statfile: &lt;br /&gt;
*** Statistics of the cache request: &lt;br /&gt;
**** First line: Total requests of the cache number. &lt;br /&gt;
**** Second line: Requests of the cache an hour number. &lt;br /&gt;
**** Third line: Updates of the cache an hour number.&lt;br /&gt;
&lt;br /&gt;
==== Specification 2: ====&lt;br /&gt;
&#039;&#039;&#039;Networks Served&#039;&#039;&#039; &lt;br /&gt;
* Gnutella, Gnutella2, etc. &lt;br /&gt;
&#039;&#039;&#039;Format&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Information Output&#039;&#039;&#039; &lt;br /&gt;
** Starts with: I| &lt;br /&gt;
*** &#039;&#039;&#039;Categories&#039;&#039;&#039; &lt;br /&gt;
**** &#039;&#039;&#039;Pong&#039;&#039;&#039; (ping variable response) - Described below under the topic: variables. &lt;br /&gt;
**** &#039;&#039;&#039;Update Status Response&#039;&#039;&#039; &lt;br /&gt;
***** Format: I|update &lt;br /&gt;
***** &#039;&#039;&#039;Responses&#039;&#039;&#039; &lt;br /&gt;
****** I|update|OK &lt;br /&gt;
******* - Everything went fine. &lt;br /&gt;
****** I|update|OK|WARNING &lt;br /&gt;
******* Small warning. &lt;br /&gt;
****** I|update|WARNING &lt;br /&gt;
******* Severe warning &lt;br /&gt;
**** &#039;&#039;&#039;Plain Warnings&#039;&#039;&#039; &lt;br /&gt;
***** Format: I|WARNING &lt;br /&gt;
****** Append any warning messages after it - Ex: I|WARNING|You came back too early &lt;br /&gt;
**** &#039;&#039;&#039;Extra Info&#039;&#039;&#039; - Described below under the topic: variables. &lt;br /&gt;
* &#039;&#039;&#039;Host Output&#039;&#039;&#039; &lt;br /&gt;
** Starts with: H| &lt;br /&gt;
** Add the IP with its port: &lt;br /&gt;
*** Ex: H|0.0.0.0:6346 &lt;br /&gt;
** Add the time, thereafter, of the host&#039;s (In seconds*) time in cache: &lt;br /&gt;
*** Ex: H|0.0.0.0:6346|45 &lt;br /&gt;
** If cluster exists with cluster=somerandomwords &lt;br /&gt;
*** Add the clustered words after the host&#039;s age: &lt;br /&gt;
**** Ex: H|0.0.0.0:6346|45|somerandomwords &lt;br /&gt;
* &#039;&#039;&#039;URL Output&#039;&#039;&#039; &lt;br /&gt;
** Starts with: U| &lt;br /&gt;
** Add the URL with http:// before it, plus the port (if it&#039;s not 80). &lt;br /&gt;
*** Ex: U|[http://somerandomcache.com/ http://somerandomcache.com/] &lt;br /&gt;
** Add the time, thereafter, of the URL&#039;s time (In seconds*) in cache: &lt;br /&gt;
*** Ex: U|[http://somerandomcache.com/%7C45 http://somerandomcache.com/|45] &lt;br /&gt;
* &#039;&#039;&#039;Example Cache Output (Beacon Cache) For get Command&#039;&#039;&#039; &lt;br /&gt;
** Example URL: [http://grantgalitz.com/Beacon/gwc.php?get=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;net=gnutella2&amp;amp;ping=1 http://grantgalitz.com/Beacon/gwc.php?get=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;net=gnutella2&amp;amp;ping=1] &lt;br /&gt;
*** Example &amp;quot;Get&amp;quot; Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Getting the hosts and urls with a pong combined&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| I|pong|Beacon Cache 0.1.5D Beta|gnutella-gnutella2H|65.9.200.243:4968|248261H|68.228.129.75:44599|242678H|98.240.196.122:8206|240719H|76.104.12.133:14921|218273H|69.136.1.12:3924|211610H|81.154.208.71:8595|174402H|97.96.105.51:2076|153610H|74.192.153.212:39340|144203H|72.190.106.57:12584|132984H|78.93.71.132:12334|125668H|82.43.248.184:27560|97974H|196.205.224.97:6357|86763H|74.129.219.30:33172|82005H|76.104.12.133:19185|57182H|69.59.83.131:18442|38628U|[http://www.k33bz.com/g2/bazooka.php%7C248639 http://www.k33bz.com/g2/bazooka.php|248639]U|[http://gwebcache.ns1.net/%7C248592 http://gwebcache.ns1.net/|248592]U|[http://gwc2.wodi.org/skulls.php%7C248384 http://gwc2.wodi.org/skulls.php|248384]U|[http://gwc.guufshop.com/skulls/skulls.php%7C248322 http://gwc.guufshop.com/skulls/skulls.php|248322]U|[http://groovy.syxy.com/up/skulls.php%7C248300 http://groovy.syxy.com/up/skulls.php|248300]U|[http://g2.tjtech.org/g2/index.php%7C247770 http://g2.tjtech.org/g2/index.php|247770]U|[http://midian.jayl.de/g2/bazooka.php%7C240719 http://midian.jayl.de/g2/bazooka.php|240719]U|[http://www.dom2porno.info/skulls/skulls.php%7C207473 http://www.dom2porno.info/skulls/skulls.php|207473]U|[http://gwc.frodoslair.net/skulls/skulls%7C125668 http://gwc.frodoslair.net/skulls/skulls|125668]U|[http://holograph.uni.cc/other/skulls.php%7C9642 http://holograph.uni.cc/other/skulls.php|9642] &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Variables&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Mandatory&#039;&#039;&#039; &lt;br /&gt;
** ping: &lt;br /&gt;
*** Main Part: I|pong| &lt;br /&gt;
*** Then add the cache name and version: I|pong|fakecache 0.01 &lt;br /&gt;
*** Then lastly add the network support: &lt;br /&gt;
**** I|pong|fakecache 0.01|gnutella &lt;br /&gt;
***** - Gnutella only &lt;br /&gt;
**** I|pong|fakecache 0.01|gnutella2 &lt;br /&gt;
***** - Gnutella2 only &lt;br /&gt;
**** I|pong|fakecache 0.01|gnutella-gnutella2 &lt;br /&gt;
***** - Gnutella and Gnutella2 served &lt;br /&gt;
** get: &lt;br /&gt;
*** Used by clients to requests alternate cache URLs along with IPs and their port numbers. &lt;br /&gt;
** update: &lt;br /&gt;
*** url: &lt;br /&gt;
**** Client update giving an alternate cache URL. &lt;br /&gt;
**** Formatted with a http:// prefix to each cache. &lt;br /&gt;
*** ip: &lt;br /&gt;
**** Client update giving one&#039;s IP to submit. &lt;br /&gt;
** net: &lt;br /&gt;
*** Which network to serve the client. &lt;br /&gt;
**** Gnutella &lt;br /&gt;
***** Ex: net=gnutella &lt;br /&gt;
**** Gnutella2 &lt;br /&gt;
***** Ex: net=gnutella2 &lt;br /&gt;
**** &#039;&#039;&#039;Should always be lowercase&#039;&#039;&#039; &lt;br /&gt;
***** GWCs should automatically convert network name given to lowercase to prevent Net ID mismatches &lt;br /&gt;
&lt;br /&gt;
solely on case alone. &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
* &lt;br /&gt;
** client: &lt;br /&gt;
*** Four letter code of the client. ex: RAZA &lt;br /&gt;
** version: &lt;br /&gt;
*** Version number of the client. &lt;br /&gt;
* &#039;&#039;&#039;Optional&#039;&#039;&#039; &lt;br /&gt;
** cluster: &lt;br /&gt;
*** To add extra info to an IP update. &lt;br /&gt;
**** Output by cache: H|0.0.0.0|AGE OF HOST (Seconds)|clustering some bull**** &lt;br /&gt;
** statfile: &lt;br /&gt;
*** Exactly like the specification 1 statfile &#039;&#039;&#039;(Same routine and output style)&#039;&#039;&#039;. &lt;br /&gt;
*** Statistics of the cache request: &lt;br /&gt;
**** First line: Total requests of the cache number. &lt;br /&gt;
**** Second line: Requests of the cache an hour number. &lt;br /&gt;
**** Third line: Updates of the cache an hour number. &lt;br /&gt;
&lt;br /&gt;
==== Specification 2.1 ====&lt;br /&gt;
&#039;&#039;&#039;This is an extension of specification 2, not a separate specification!&#039;&#039;&#039; &lt;br /&gt;
Pong extension &lt;br /&gt;
* Append the networks supported joined by a hyphen &#039;-&#039;. &lt;br /&gt;
* Used for client-side validation of networks supported and for network support reporting to other web caches. &lt;br /&gt;
* Format: &lt;br /&gt;
** I|pong|cache name|network names joined by &#039;-&#039; &lt;br /&gt;
** Format Examples: &lt;br /&gt;
*** I|pong|fakecache 0.01|gnutella &lt;br /&gt;
**** - Gnutella only &lt;br /&gt;
*** I|pong|fakecache 0.01|gnutella2 &lt;br /&gt;
**** - Gnutella2 only &lt;br /&gt;
*** I|pong|fakecache 0.01|gnutella-gnutella2 &lt;br /&gt;
**** - Gnutella and Gnutella2 served &lt;br /&gt;
Host Output &lt;br /&gt;
* Just like specification 2, but with more fields supported for host output. &lt;br /&gt;
** H|ip:port|age in cache|clustering|leaves|4 letter vendor code|reported uptime of host|max. leaves possible &lt;br /&gt;
*** The host, age, and clustering fields are all still the same as in specification 2. &lt;br /&gt;
*** The leaf count of the hub reported is in the 5th field. &lt;br /&gt;
*** The vendor code with version number is in the 6th field. &lt;br /&gt;
Request Control Variables: &lt;br /&gt;
* getleaves &lt;br /&gt;
** Used to obtain leaf counts of hubs given &lt;br /&gt;
** 4th field ultilized for current leaf count. &lt;br /&gt;
** 7th field ultilized for maximum leaf slots possible. &lt;br /&gt;
** Use this as &#039;getleaves=1&#039; or &#039;getleaves&#039; to enable. &lt;br /&gt;
* getclusters &lt;br /&gt;
** Enables/Disables clustering. &lt;br /&gt;
** Use this as &#039;getclusters=1&#039;. &lt;br /&gt;
** Using &#039;getclusters&#039; or &#039;getclusters=0&#039; disables cluster output. &lt;br /&gt;
* getvendors &lt;br /&gt;
** Used to obtain the vendor code w/ version number of the hubs given. &lt;br /&gt;
** Found in the 5th field. &lt;br /&gt;
** Use this as &#039;getvendors=1&#039; or &#039;getvendors&#039; to enable. &lt;br /&gt;
* getuptime &lt;br /&gt;
** Used to obtain the vendor code w/ version number of the hubs given. &lt;br /&gt;
** Value is static, do not change the value given when time passes. &lt;br /&gt;
** Found in the 6th field. &lt;br /&gt;
** Use this as &#039;getuptime=1&#039; or &#039;getuptime&#039; to enable. &lt;br /&gt;
* spec &lt;br /&gt;
** To force the specification parameter &lt;br /&gt;
** Currently is only supported by Beacon Cache II &lt;br /&gt;
* pv &lt;br /&gt;
** Similar to the &#039;spec&#039; parameter, except that it does not force, instead it simply negotiates the specification. &lt;br /&gt;
Special Data Requests &lt;br /&gt;
* info &lt;br /&gt;
** Outputs extra details of your cache. &lt;br /&gt;
*** Start with the informational response: I| &lt;br /&gt;
**** Ex: I|open-source|1 &lt;br /&gt;
* support &lt;br /&gt;
** Outputs USEFUL details of your cache. &lt;br /&gt;
*** Start with the informational response: I| &lt;br /&gt;
**** Ex: I|support|gnutella2 &lt;br /&gt;
* getnetworks &lt;br /&gt;
** Outputs the enabled networks in two formats. &lt;br /&gt;
*** Start with the informational response: I| &lt;br /&gt;
**** For the &#039;I|nets|&#039; line &lt;br /&gt;
***** The third field contains the supported networks joined by &#039;-&#039;. &lt;br /&gt;
**** For the &#039;I|networks|&#039; line &lt;br /&gt;
***** Interpret the fields from 3 and beyond as individual network names to challenge against. &lt;br /&gt;
*** Examples &lt;br /&gt;
**** &lt;br /&gt;
***** I|nets|gnutella-gnutella2 &lt;br /&gt;
***** I|networks|gnutella|gnutella2 &lt;br /&gt;
Update Extension Variables: &lt;br /&gt;
* x_leaves &lt;br /&gt;
** Number of leaves running on a given hub or ultrapeer. &lt;br /&gt;
** &#039;&#039;&#039;Value must not be greater than an integer value of 2047.&#039;&#039;&#039; &lt;br /&gt;
** &#039;&#039;&#039;Note: It is important to know that PHP automaticaly replace dots with underscores, so to keep compatibility with old/new version of clients all caches should support both variants, example: x.leaves x_leaves&#039;&#039;&#039; &lt;br /&gt;
* x_max &lt;br /&gt;
** Maximum number of leaves possible on a given hub or ultrapeer. &lt;br /&gt;
** &#039;&#039;&#039;Value must not be greater than an integer value of 2047.&#039;&#039;&#039; &lt;br /&gt;
* uptime &lt;br /&gt;
** Value submitted must be an integer value of the number of seconds of uptime. &lt;br /&gt;
** &#039;&#039;&#039;Value must not be greater than an integer value of 1 year (31536000) and less than 1 hour (60).&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== Pinging Caches With Your Cache ===&lt;br /&gt;
&#039;&#039;&#039;Please follow this standard:&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Client: TEST&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Version: Your Cache&#039;s Name&#039;&#039;&#039; &lt;br /&gt;
** The old value for &amp;quot;version&amp;quot; was 1 &lt;br /&gt;
&#039;&#039;&#039;Some variables to attach to the ping (compatibility):&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;multi&#039;&#039;&#039; &lt;br /&gt;
** Used by some gwcs in their pings to other gwcs. &lt;br /&gt;
** &amp;lt;nowiki&amp;gt;It tells the pinged cache to ignore the &amp;quot;net&amp;quot; parameter (so it should never say network not supported) and outputting the pong using this format, if possible, &amp;quot;I|pong|[cache name] [cache version]|[supported networks list]&amp;quot; - example: I|pong|Skulls 0.2.9|gnutella-gnutella2 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
** Used by Skulls GWC only, supported by Skulls and Beacon Cache II. &lt;br /&gt;
* &#039;&#039;&#039;cache&#039;&#039;&#039; &lt;br /&gt;
** This is added to every request made by some gwcs, it is for statistical purposes only. &lt;br /&gt;
** It simply tells the remote cache that the client is a GWC. &lt;br /&gt;
&#039;&#039;&#039;Help&#039;&#039;&#039; &lt;br /&gt;
* For PHP &lt;br /&gt;
** Use the fsockopen() function to open a connection to a cache. &lt;br /&gt;
*** Make sure you &amp;quot;write&amp;quot; to the fsockopen carry value to open the GWC&#039;s target file. &lt;br /&gt;
**** [http://us.php.net/manual/en/function.fsockopen.php http://us.php.net/manual/en/function.fsockopen.php] &lt;br /&gt;
&lt;br /&gt;
=== Variable Combination Standards ===&lt;br /&gt;
&#039;&#039;&#039;Net variable decides specification!&#039;&#039;&#039; &lt;br /&gt;
* There are many ways to determine spec., but going with net is the safe way. &lt;br /&gt;
* Skulls GWC does not use the network parameter to determine specification level. &lt;br /&gt;
* Beacon Cache (I and II) uses the network parameter to determine the specification level. &lt;br /&gt;
&#039;&#039;&#039;Your cache needs to be able to process certain combinations of variables.&#039;&#039;&#039; &lt;br /&gt;
* Update variable &lt;br /&gt;
** Update should not fail if absent if spec. 2. &lt;br /&gt;
*** A Specification 2 parameter. &lt;br /&gt;
Spec 1 parameters used in Spec 2: &lt;br /&gt;
* Should still accept hostfile and urlfile responses for spec. 2. &lt;br /&gt;
** Beacon Cache (I and II) accepts these parameters on spec 2. &lt;br /&gt;
The &#039;spec&#039; paameter can be used to force a specification: &lt;br /&gt;
* Only known to exist in Beacon Cache II, it can force the request to be handled as a specification 1 or 2 request. &lt;br /&gt;
* Spec 1 = &#039;spec=1&#039; &lt;br /&gt;
* Spec 2 = &#039;spec=2&#039; &lt;br /&gt;
* If &#039;spec&#039; is not equal to any current spec, then default to the predetermined spec. &lt;br /&gt;
&#039;&#039;&#039;Multiple variable requests&#039;&#039;&#039; &lt;br /&gt;
* If for instance a ping and request exist, you should always handle them properly. &lt;br /&gt;
** Same goes with other combos like an update and ping, statfile + ping and info. &lt;br /&gt;
* Handle multiple variables as BEST as possible! &lt;br /&gt;
** Some scanners and GWCs like to fit all their requests into one URL send. &lt;br /&gt;
&lt;br /&gt;
=== Further Information: ===&lt;br /&gt;
* [http://www.gnucleus.com/gwebcache/ Original GWC] [http://www.gnucleus.com/gwebcache/ site] &lt;br /&gt;
** [http://gnucleus.sourceforge.net/gwebcache/specs.html GWC Spec. 1] &lt;br /&gt;
** [http://gnucleus.sourceforge.net/gwebcache/newgwc.html GWC Spec. 2] &lt;br /&gt;
&lt;br /&gt;
=== Gnutella Web Cache ===&lt;br /&gt;
Gnutella requires Gnutella Web Caches (GWC) to get IPs to establish a connection to the network.  These are critical to ensuring the health of the network.  If you have a dedicated server and can spare some extra bandwidth then please consider running a GWC.  People that don&#039;t have a dedicated server or are on normal broadband consumer lines should not run a cache from home.&lt;br /&gt;
&lt;br /&gt;
A GWC is a simple script that can be put on any webserver that supports one of the following scripting languages:&lt;br /&gt;
*JSP (Java Servlet)&lt;br /&gt;
**[http://web.archive.org/web/20061108091447/http://www.mager.org/GWebCache/ Java Servlet GWebCache Application (Archive.org)]&lt;br /&gt;
*C&lt;br /&gt;
**[http://ghostwhitecrab.com/crab/ GhostWhiteCrab]&lt;br /&gt;
*Perl &lt;br /&gt;
**[http://www.jonatkins.com/perlgcache/ Jon Atkins&#039; perlgcache] &lt;br /&gt;
**The original [http://www.gnucleus.com/gwebcache/dist/ GnuWebCache]&lt;br /&gt;
*PHP &lt;br /&gt;
**[http://gwcii.sourceforge.net/ PHPGnuCacheII] - MySQL&lt;br /&gt;
**[http://www.bazookanetworks.com Bazooka G2WC] (recommended) - flat files&lt;br /&gt;
**[http://sourceforge.net/projects/skulls/ Skulls! Multi-Network WebCache] - flat files&lt;br /&gt;
====Further Information:====&lt;br /&gt;
*[http://www.gnucleus.com/gwebcache/|Original GWC site]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{RecoveredPage|--&amp;gt;Saved in timestamp 20090421202728Retrieved from &amp;quot;[https://www.pantheraproject.net/wiki/index.php?title=GWC This page was last modified on April 18, 2009, at 23:25. &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;Copyright © 2002-2009 Shareaza Development Team. &amp;lt;/center&amp;gt;&amp;lt;center&amp;gt;[[Image:poweredby_mediawiki_88x31.png]] --[[User:Ocexyz|Ocexyz]] 16:20, 27 July 2009 (UTC)}}&lt;br /&gt;
&lt;br /&gt;
{{RecoveredPage|Warninig: here ends pasted better formatted recovery. Row recovery has been mooved below as I don&#039;t know if anybody has made any changes in it. If not then row recovery can be deleted I suppose. Paste starts from == Shareaza Specific Details == and ends at second == Shareaza Specific Details ==, here. I hope it is visible.  --[[User:Ocexyz|Ocexyz]] 16:20, 27 July 2009 (UTC)  }}&lt;br /&gt;
&lt;br /&gt;
==Shareaza Specific Details==&lt;br /&gt;
&lt;br /&gt;
{{RecoveredPage|Warninig: here ends pasted better formatted recovery. Row recovery has been mooved below as I don&#039;t know if anybody has made any changes in it. If not then row recovery can be deleted I suppose. Paste starts from &amp;gt;&amp;gt;Shareaza Specific Details&amp;lt;&amp;lt; and ends at second &amp;gt;&amp;gt; Shareaza Specific Details&amp;lt;&amp;lt;, here. I hope it is visible.  --[[User:Ocexyz|Ocexyz]] 23:27, 27 July 2009 (UTC)  }}&lt;br /&gt;
&lt;br /&gt;
* Get String Breakdown:&lt;br /&gt;
          o Update a leaf&lt;br /&gt;
                + &amp;quot;?update=1&amp;amp;ip=(ip):(port)&amp;amp;x_leaves=(leaf count) &lt;br /&gt;
          o Ping Variable&lt;br /&gt;
                + Appends &amp;amp;ping=1 to identify the cache name in debug messages (for gnutella and gnutella2 in 2.4.0.0, but only for gnutella2 now in 2.4.0.X for spec1 cache compatibility).&lt;br /&gt;
                + This feature new to Shareaza. &lt;br /&gt;
          o Network Variable&lt;br /&gt;
                + Appends &amp;amp;net=gnutella2 on Gnutella2 queries.&lt;br /&gt;
                + Does NOT append a network variable on Gnutella(1) queries. &lt;br /&gt;
          o Client Name / Version Format (2.4.0.0 and earlier):&lt;br /&gt;
                + &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) )&lt;br /&gt;
                + &amp;amp;version=(Shareaza&#039;s version) &lt;br /&gt;
          o Client Name / Version Format (2.4.0.X):&lt;br /&gt;
                + If Gnutella&lt;br /&gt;
                      # &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) )&lt;br /&gt;
                      # &amp;amp;version=(Shareaza&#039;s version) &lt;br /&gt;
                + If Gnutella2&lt;br /&gt;
                      # &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) )+(Shareaza&#039;s version) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* GWC Response Matching:&lt;br /&gt;
          o i|&lt;br /&gt;
                + Informational output alone will not be taken as GWC &#039;success.&#039; &lt;br /&gt;
          o i|access|period|(time in sec.)&lt;br /&gt;
                + Time in seconds before Shareaza is allowed to make a request to the cache. &lt;br /&gt;
          o i|update|period|(time in sec.)&lt;br /&gt;
                + Time in seconds before Shareaza is allowed to update to the cache. &lt;br /&gt;
          o i|force|remove and i|update|warning|bad url&lt;br /&gt;
                + Remove the GWC from the internal list. &lt;br /&gt;
          o Some Response Matches (added in 2.3.1.X)&lt;br /&gt;
                + i|NO-URL-NO-HOSTS&lt;br /&gt;
                      # Outputs warning of the cache being totally empty to the system log. &lt;br /&gt;
                + i|NO-URL&lt;br /&gt;
                      # Outputs warning of the cache having no alternative URLs to the system log. &lt;br /&gt;
                + i|NO-HOSTS&lt;br /&gt;
                      # Outputs warning of the cache having no hosts to the system log. &lt;br /&gt;
                + i|warning|&lt;br /&gt;
                      # Outputs warning of the cache to the system log. &lt;br /&gt;
                + ERROR Something Failed&lt;br /&gt;
                      # Outputs warning of the cache to the system log(Buggy Bazooka GWCs workaround). &lt;br /&gt;
                + i|warning|You came back too early (2.3.1.X)&lt;br /&gt;
                + i|warning|client|early (2.3.1.X)&lt;br /&gt;
                + WARNING: You came back too early (2.3.1.X)&lt;br /&gt;
                + ERROR: Client returned too early (2.3.1.X)&lt;br /&gt;
                      # Flood detection for the update side.&lt;br /&gt;
                      # Outputs GWebCache(update) Too many connection attempts to the system log. &lt;br /&gt;
                + too early (2.3.1.X)&lt;br /&gt;
                + early (2.4.0.X)&lt;br /&gt;
                      # Flood detection for the request side.&lt;br /&gt;
                      # Outputs GWebCache URL: Too many connection attempts to the system log. &lt;br /&gt;
                + i|update|OK&lt;br /&gt;
                      # Outputs &amp;quot;GWebCache(v2) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
                + OK&lt;br /&gt;
                      # Outputs &amp;quot;GWebCache(v1) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* GWC Response Matching:&lt;br /&gt;
          o i|&lt;br /&gt;
                + Informational output alone will not be taken as GWC &#039;success.&#039; &lt;br /&gt;
          o i|access|period|(time in sec.)&lt;br /&gt;
                + Time in seconds before Shareaza is allowed to make a request to the cache. &lt;br /&gt;
          o i|update|period|(time in sec.)&lt;br /&gt;
                + Time in seconds before Shareaza is allowed to update to the cache. &lt;br /&gt;
          o i|force|remove and i|update|warning|bad url&lt;br /&gt;
                + Remove the GWC from the internal list. &lt;br /&gt;
          o Some Response Matches (added in 2.3.1.X)&lt;br /&gt;
                + i|NO-URL-NO-HOSTS&lt;br /&gt;
                      # Outputs warning of the cache being totally empty to the system log. &lt;br /&gt;
                + i|NO-URL&lt;br /&gt;
                      # Outputs warning of the cache having no alternative URLs to the system log. &lt;br /&gt;
                + i|NO-HOSTS&lt;br /&gt;
                      # Outputs warning of the cache having no hosts to the system log. &lt;br /&gt;
                + i|warning|&lt;br /&gt;
                      # Outputs warning of the cache to the system log. &lt;br /&gt;
                + ERROR Something Failed&lt;br /&gt;
                      # Outputs warning of the cache to the system log(Buggy Bazooka GWCs workaround). &lt;br /&gt;
                + i|warning|You came back too early (2.3.1.X)&lt;br /&gt;
                + i|warning|client|early (2.3.1.X)&lt;br /&gt;
                + WARNING: You came back too early (2.3.1.X)&lt;br /&gt;
                + ERROR: Client returned too early (2.3.1.X)&lt;br /&gt;
                      # Flood detection for the update side.&lt;br /&gt;
                      # Outputs GWebCache(update) Too many connection attempts to the system log. &lt;br /&gt;
                + too early (2.3.1.X)&lt;br /&gt;
                + early (2.4.0.X)&lt;br /&gt;
                      # Flood detection for the request side.&lt;br /&gt;
                      # Outputs GWebCache URL: Too many connection attempts to the system log. &lt;br /&gt;
                + i|update|OK&lt;br /&gt;
                      # Outputs &amp;quot;GWebCache(v2) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
                + OK&lt;br /&gt;
                      # Outputs &amp;quot;GWebCache(v1) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Gnutella Web Cache Specifications==&lt;br /&gt;
&amp;lt;end of partial recovery by OCE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;end of recovered content&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;row recovery, start&amp;gt; &lt;br /&gt;
 Specification 1:&lt;br /&gt;
&lt;br /&gt;
    * Networks Served&lt;br /&gt;
          o Gnutella &lt;br /&gt;
    * Format&lt;br /&gt;
          o Update went fine:&lt;br /&gt;
                + Ex: OK &lt;br /&gt;
          o Update Warning (Small prob., not that bad):&lt;br /&gt;
                + Ex: &lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
WARNING: Error Message&lt;br /&gt;
&lt;br /&gt;
    * Severe Warning (No &#039;OK&#039; message sent)&lt;br /&gt;
          o Ex: &lt;br /&gt;
&lt;br /&gt;
WARNING: Error Message&lt;br /&gt;
&lt;br /&gt;
    * URL Output:&lt;br /&gt;
          o Ex: http://somefreakinrandomcache.com/cache/gcache.php&lt;br /&gt;
                + OR - WITH A PORT NUMBER (If not 80)&lt;br /&gt;
                      # Ex: http://somefreakinrandomcache.com:8080/cache/gcache.php &lt;br /&gt;
    * Host Output:&lt;br /&gt;
          o Ex: 66.132.55.12:6346 &lt;br /&gt;
    * Pong (ping variable response) - was explained below under the topic: variables.&lt;br /&gt;
    * Example Cache Output (Beacon Cache) For urlfile Command&lt;br /&gt;
          o Example &amp;quot;urlfile Output&amp;quot; URL: Ex: http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;urlfile=1&lt;br /&gt;
                + Example URL Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting urls with a pong combined&lt;br /&gt;
&lt;br /&gt;
PONG Beacon Cache 0.1.5D Beta&lt;br /&gt;
http://gwc.frodoslair.net/skulls/skulls.php&lt;br /&gt;
http://bbs.robertwoolley.co.uk/GWebCache/gcache.php&lt;br /&gt;
http://g2.tjtech.org/g2/&lt;br /&gt;
http://g2.tjtech.org/g2/index.php&lt;br /&gt;
http://gwc.monnsta.net/&lt;br /&gt;
http://holograph.uni.cc/other/skulls.php&lt;br /&gt;
http://gwc.nickstallman.net/&lt;br /&gt;
http://gwc.eod.cc/skulls.php&lt;br /&gt;
http://gwc.frodoslair.net/skulls/skulls&lt;br /&gt;
http://gwc.werwin.net/skulls.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * Example Cache Output (Beacon Cache) For hostfile Command&lt;br /&gt;
          o Example &amp;quot;hostfile Output&amp;quot; URL: Ex: http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;hostfile=1&lt;br /&gt;
                + Example Host Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting the hosts with a pong combined&lt;br /&gt;
&lt;br /&gt;
PONG Beacon Cache 0.1.5D Beta&lt;br /&gt;
71.8.84.153:3915&lt;br /&gt;
99.248.214.157:27529&lt;br /&gt;
69.60.241.55:16369&lt;br /&gt;
193.253.239.246:30218&lt;br /&gt;
68.156.175.121:6348&lt;br /&gt;
71.179.7.241:18344&lt;br /&gt;
74.196.22.241:6348&lt;br /&gt;
12.210.197.194:10531&lt;br /&gt;
222.150.143.77:10000&lt;br /&gt;
58.85.231.135:6346&lt;br /&gt;
24.141.199.164:20205&lt;br /&gt;
72.175.201.195:6348&lt;br /&gt;
69.81.129.228:4880&lt;br /&gt;
97.81.221.63:13219&lt;br /&gt;
70.15.130.224:7759&lt;br /&gt;
216.211.188.106:51903&lt;br /&gt;
75.167.168.156:48660&lt;br /&gt;
12.214.14.3:35916&lt;br /&gt;
76.177.244.106:24180&lt;br /&gt;
98.165.218.139:39630&lt;br /&gt;
68.112.182.125:3685&lt;br /&gt;
68.117.204.57:23482&lt;br /&gt;
65.12.154.25:40760&lt;br /&gt;
69.180.47.169:5711&lt;br /&gt;
75.138.40.173:24987&lt;br /&gt;
98.201.19.0:33662&lt;br /&gt;
70.187.2.144:6348&lt;br /&gt;
68.186.209.107:14429&lt;br /&gt;
69.159.7.61:6348&lt;br /&gt;
76.208.176.196:48199&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * For combining a hostfile and urlfile request:&lt;br /&gt;
          o Warning: This is non-standard.&lt;br /&gt;
          o Example Cache Output (Beacon Cache) For bfile Command&lt;br /&gt;
                + Example &amp;quot;bfile Output&amp;quot; URL: Ex: http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;bfile=1&lt;br /&gt;
                      # Example Host and URL Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting the hosts and urls with a pong combined&lt;br /&gt;
&lt;br /&gt;
PONG Beacon Cache 0.1.5D Beta&lt;br /&gt;
71.8.84.153:3915&lt;br /&gt;
99.248.214.157:27529&lt;br /&gt;
69.60.241.55:16369&lt;br /&gt;
193.253.239.246:30218&lt;br /&gt;
68.156.175.121:6348&lt;br /&gt;
71.179.7.241:18344&lt;br /&gt;
74.196.22.241:6348&lt;br /&gt;
12.210.197.194:10531&lt;br /&gt;
222.150.143.77:10000&lt;br /&gt;
58.85.231.135:6346&lt;br /&gt;
24.141.199.164:20205&lt;br /&gt;
72.175.201.195:6348&lt;br /&gt;
69.81.129.228:4880&lt;br /&gt;
97.81.221.63:13219&lt;br /&gt;
70.15.130.224:7759&lt;br /&gt;
216.211.188.106:51903&lt;br /&gt;
75.167.168.156:48660&lt;br /&gt;
12.214.14.3:35916&lt;br /&gt;
76.177.244.106:24180&lt;br /&gt;
98.165.218.139:39630&lt;br /&gt;
68.112.182.125:3685&lt;br /&gt;
68.117.204.57:23482&lt;br /&gt;
65.12.154.25:40760&lt;br /&gt;
69.180.47.169:5711&lt;br /&gt;
75.138.40.173:24987&lt;br /&gt;
98.201.19.0:33662&lt;br /&gt;
70.187.2.144:6348&lt;br /&gt;
68.186.209.107:14429&lt;br /&gt;
69.159.7.61:6348&lt;br /&gt;
76.208.176.196:48199&lt;br /&gt;
http://gwc.frodoslair.net/skulls/skulls.php&lt;br /&gt;
http://bbs.robertwoolley.co.uk/GWebCache/gcache.php&lt;br /&gt;
http://g2.tjtech.org/g2/&lt;br /&gt;
http://g2.tjtech.org/g2/index.php&lt;br /&gt;
http://gwc.monnsta.net/&lt;br /&gt;
http://holograph.uni.cc/other/skulls.php&lt;br /&gt;
http://gwc.nickstallman.net/&lt;br /&gt;
http://gwc.eod.cc/skulls.php&lt;br /&gt;
http://gwc.frodoslair.net/skulls/skulls&lt;br /&gt;
http://gwc.werwin.net/skulls.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * Variables&lt;br /&gt;
          o Mandatory&lt;br /&gt;
                + ping:&lt;br /&gt;
                      # Response should have this always: PONG&lt;br /&gt;
                      # After, put the cache&#039;s name. ex: PONG fakecache 0.01&lt;br /&gt;
                + client:&lt;br /&gt;
                      # Four letter code of the client. ex: RAZA &lt;br /&gt;
                + version:&lt;br /&gt;
                      # Version number of the client. &lt;br /&gt;
                + urlfile:&lt;br /&gt;
                      # Used by the client to request alternate cache urls. &lt;br /&gt;
                + hostfile:&lt;br /&gt;
                      # Used by the client to request IPs with port numbers attached. &lt;br /&gt;
                + url:&lt;br /&gt;
                      # Client update giving an alternate cache URL.&lt;br /&gt;
                      # Formatted with a http:// prefix to each cache. &lt;br /&gt;
                + ip:&lt;br /&gt;
                      # Client update giving one&#039;s IP to submit. &lt;br /&gt;
                + url1:&lt;br /&gt;
                      # OLD OUTDATED Client update giving an alternate cache URL.&lt;br /&gt;
                      # Formatted with a http:// prefix to each cache. &lt;br /&gt;
                + ip1:&lt;br /&gt;
                      # OLD OUTDATED Client update giving one&#039;s IP to submit. &lt;br /&gt;
          o Optional&lt;br /&gt;
                + bfile:&lt;br /&gt;
                      # For clients to request both URLs and IPs from the cache at the same time. &lt;br /&gt;
                + statfile:&lt;br /&gt;
                      # Statistics of the cache request:&lt;br /&gt;
                            * First line: Total requests of the cache number.&lt;br /&gt;
                            * Second line: Requests of the cache an hour number.&lt;br /&gt;
                            * Third line: Updates of the cache an hour number. &lt;br /&gt;
&lt;br /&gt;
Specification 2:&lt;br /&gt;
&lt;br /&gt;
    * Networks Served&lt;br /&gt;
          o Gnutella, Gnutella2, etc. &lt;br /&gt;
    * Format&lt;br /&gt;
          o Information Output&lt;br /&gt;
                + Starts with: I|&lt;br /&gt;
                      # Categories&lt;br /&gt;
                            * Pong (ping variable response) - Described below under the topic: variables.&lt;br /&gt;
                            * Update Status Response&lt;br /&gt;
                                  o Format: I|update&lt;br /&gt;
                                  o Responses&lt;br /&gt;
                                        + I|update|OK&lt;br /&gt;
                                              # - Everything went fine. &lt;br /&gt;
                                        + I|update|OK|WARNING&lt;br /&gt;
                                              # Small warning. &lt;br /&gt;
                                        + I|update|WARNING&lt;br /&gt;
                                              # Severe warning &lt;br /&gt;
                            * Plain Warnings&lt;br /&gt;
                                  o Format: I|WARNING&lt;br /&gt;
                                        + Append any warning messages after it - Ex: I|WARNING|You came back too early &lt;br /&gt;
                            * Extra Info - Described below under the topic: variables. &lt;br /&gt;
          o Host Output&lt;br /&gt;
                + Starts with: H|&lt;br /&gt;
                + Add the IP with its port:&lt;br /&gt;
                      # Ex: H|0.0.0.0:6346 &lt;br /&gt;
                + Add the time, thereafter, of the host&#039;s (In seconds*) time in cache:&lt;br /&gt;
                      # Ex: H|0.0.0.0:6346|45 &lt;br /&gt;
                + If cluster exists with cluster=somerandomwords&lt;br /&gt;
                      # Add the clustered words after the host&#039;s age:&lt;br /&gt;
                            * Ex: H|0.0.0.0:6346|45|somerandomwords &lt;br /&gt;
          o URL Output&lt;br /&gt;
                + Starts with: U|&lt;br /&gt;
                + Add the URL with http:// before it, plus the port (if it&#039;s not 80).&lt;br /&gt;
                      # Ex: U|http://somerandomcache.com/ &lt;br /&gt;
                + Add the time, thereafter, of the URL&#039;s time (In seconds*) in cache:&lt;br /&gt;
                      # Ex: U|http://somerandomcache.com/|45 &lt;br /&gt;
          o Example Cache Output (Beacon Cache) For get Command&lt;br /&gt;
                + Example URL: http://grantgalitz.com/Beacon/gwc.php?get=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;net=gnutella2&amp;amp;ping=1&lt;br /&gt;
                      # Example &amp;quot;Get&amp;quot; Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting the hosts and urls with a pong combined&lt;br /&gt;
&lt;br /&gt;
I|pong|Beacon Cache 0.1.5D Beta|gnutella-gnutella2&lt;br /&gt;
H|65.9.200.243:4968|248261&lt;br /&gt;
H|68.228.129.75:44599|242678&lt;br /&gt;
H|98.240.196.122:8206|240719&lt;br /&gt;
H|76.104.12.133:14921|218273&lt;br /&gt;
H|69.136.1.12:3924|211610&lt;br /&gt;
H|81.154.208.71:8595|174402&lt;br /&gt;
H|97.96.105.51:2076|153610&lt;br /&gt;
H|74.192.153.212:39340|144203&lt;br /&gt;
H|72.190.106.57:12584|132984&lt;br /&gt;
H|78.93.71.132:12334|125668&lt;br /&gt;
H|82.43.248.184:27560|97974&lt;br /&gt;
H|196.205.224.97:6357|86763&lt;br /&gt;
H|74.129.219.30:33172|82005&lt;br /&gt;
H|76.104.12.133:19185|57182&lt;br /&gt;
H|69.59.83.131:18442|38628&lt;br /&gt;
U|http://www.k33bz.com/g2/bazooka.php|248639&lt;br /&gt;
U|http://gwebcache.ns1.net/|248592&lt;br /&gt;
U|http://gwc2.wodi.org/skulls.php|248384&lt;br /&gt;
U|http://gwc.guufshop.com/skulls/skulls.php|248322&lt;br /&gt;
U|http://groovy.syxy.com/up/skulls.php|248300&lt;br /&gt;
U|http://g2.tjtech.org/g2/index.php|247770&lt;br /&gt;
U|http://midian.jayl.de/g2/bazooka.php|240719&lt;br /&gt;
U|http://www.dom2porno.info/skulls/skulls.php|207473&lt;br /&gt;
U|http://gwc.frodoslair.net/skulls/skulls|125668&lt;br /&gt;
U|http://holograph.uni.cc/other/skulls.php|9642&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * Variables&lt;br /&gt;
          o Mandatory&lt;br /&gt;
                + ping:&lt;br /&gt;
                      # Main Part: I|pong|&lt;br /&gt;
                      # Then add the cache name and version: I|pong|fakecache 0.01&lt;br /&gt;
                      # Then lastly add the network support:&lt;br /&gt;
                            * I|pong|fakecache 0.01|gnutella&lt;br /&gt;
                                  o - Gnutella only &lt;br /&gt;
                            * I|pong|fakecache 0.01|gnutella2&lt;br /&gt;
                                  o - Gnutella2 only &lt;br /&gt;
                            * I|pong|fakecache 0.01|gnutella-gnutella2&lt;br /&gt;
                                  o - Gnutella and Gnutella2 served &lt;br /&gt;
                + get:&lt;br /&gt;
                      # Used by clients to requests alternate cache URLs along with IPs and their port numbers. &lt;br /&gt;
                + update:&lt;br /&gt;
                      # url:&lt;br /&gt;
                            * Client update giving an alternate cache URL.&lt;br /&gt;
                            * Formatted with a http:// prefix to each cache. &lt;br /&gt;
                      # ip:&lt;br /&gt;
                            * Client update giving one&#039;s IP to submit. &lt;br /&gt;
                + net:&lt;br /&gt;
                      # Which network to serve the client.&lt;br /&gt;
                            * Gnutella&lt;br /&gt;
                                  o Ex: net=gnutella &lt;br /&gt;
                            * Gnutella2&lt;br /&gt;
                                  o Ex: net=gnutella2 &lt;br /&gt;
                            * Should always be lowercase&lt;br /&gt;
                                  o GWCs should automatically convert network name given to lowercase to prevent Net ID mismatches &lt;br /&gt;
&lt;br /&gt;
solely on case alone.&lt;br /&gt;
&lt;br /&gt;
    *&lt;br /&gt;
          o&lt;br /&gt;
                + client:&lt;br /&gt;
                      # Four letter code of the client. ex: RAZA &lt;br /&gt;
                + version:&lt;br /&gt;
                      # Version number of the client. &lt;br /&gt;
          o Optional&lt;br /&gt;
                + cluster:&lt;br /&gt;
                      # To add extra info to an IP update.&lt;br /&gt;
                            * Output by cache: H|0.0.0.0|AGE OF HOST (Seconds)|clustering some bull**** &lt;br /&gt;
                + statfile:&lt;br /&gt;
                      # Exactly like the specification 1 statfile (Same routine and output style).&lt;br /&gt;
                      # Statistics of the cache request:&lt;br /&gt;
                            * First line: Total requests of the cache number.&lt;br /&gt;
                            * Second line: Requests of the cache an hour number.&lt;br /&gt;
                            * Third line: Updates of the cache an hour number. &lt;br /&gt;
&lt;br /&gt;
Specification 2.1&lt;br /&gt;
&lt;br /&gt;
    * This is an extension of specification 2, not a separate specification!&lt;br /&gt;
    * Pong extension&lt;br /&gt;
          o Append the networks supported joined by a hyphen &#039;-&#039;.&lt;br /&gt;
          o Used for client-side validation of networks supported and for network support reporting to other web caches.&lt;br /&gt;
          o Format:&lt;br /&gt;
                + I|pong|cache name|network names joined by &#039;-&#039;&lt;br /&gt;
                + Format Examples:&lt;br /&gt;
                      # I|pong|fakecache 0.01|gnutella&lt;br /&gt;
                            * - Gnutella only &lt;br /&gt;
                      # I|pong|fakecache 0.01|gnutella2&lt;br /&gt;
                            * - Gnutella2 only &lt;br /&gt;
                      # I|pong|fakecache 0.01|gnutella-gnutella2&lt;br /&gt;
                            * - Gnutella and Gnutella2 served &lt;br /&gt;
    * Host Output&lt;br /&gt;
          o Just like specification 2, but with more fields supported for host output.&lt;br /&gt;
                + H|ip:port|age in cache|clustering|leaves|4 letter vendor code|reported uptime of host|max. leaves possible&lt;br /&gt;
                      # The host, age, and clustering fields are all still the same as in specification 2.&lt;br /&gt;
                      # The leaf count of the hub reported is in the 5th field.&lt;br /&gt;
                      # The vendor code with version number is in the 6th field. &lt;br /&gt;
    * Request Control Variables:&lt;br /&gt;
          o getleaves&lt;br /&gt;
                + Used to obtain leaf counts of hubs given&lt;br /&gt;
                + 4th field ultilized for current leaf count.&lt;br /&gt;
                + 7th field ultilized for maximum leaf slots possible.&lt;br /&gt;
                + Use this as &#039;getleaves=1&#039; or &#039;getleaves&#039; to enable. &lt;br /&gt;
          o getclusters&lt;br /&gt;
                + Enables/Disables clustering.&lt;br /&gt;
                + Use this as &#039;getclusters=1&#039;.&lt;br /&gt;
                + Using &#039;getclusters&#039; or &#039;getclusters=0&#039; disables cluster output. &lt;br /&gt;
          o getvendors&lt;br /&gt;
                + Used to obtain the vendor code w/ version number of the hubs given.&lt;br /&gt;
                + Found in the 5th field.&lt;br /&gt;
                + Use this as &#039;getvendors=1&#039; or &#039;getvendors&#039; to enable. &lt;br /&gt;
          o getuptime&lt;br /&gt;
                + Used to obtain the vendor code w/ version number of the hubs given.&lt;br /&gt;
                + Value is static, do not change the value given when time passes.&lt;br /&gt;
                + Found in the 6th field.&lt;br /&gt;
                + Use this as &#039;getuptime=1&#039; or &#039;getuptime&#039; to enable. &lt;br /&gt;
          o spec&lt;br /&gt;
                + To force the specification parameter&lt;br /&gt;
                + Currently is only supported by Beacon Cache II &lt;br /&gt;
          o pv&lt;br /&gt;
                + Similar to the &#039;spec&#039; parameter, except that it does not force, instead it simply negotiates the specification. &lt;br /&gt;
    * Special Data Requests&lt;br /&gt;
          o info&lt;br /&gt;
                + Outputs extra details of your cache.&lt;br /&gt;
                      # Start with the informational response: I|&lt;br /&gt;
                            * Ex: I|open-source|1 &lt;br /&gt;
          o support&lt;br /&gt;
                + Outputs USEFUL details of your cache.&lt;br /&gt;
                      # Start with the informational response: I|&lt;br /&gt;
                            * Ex: I|support|gnutella2 &lt;br /&gt;
          o getnetworks&lt;br /&gt;
                + Outputs the enabled networks in two formats.&lt;br /&gt;
                      # Start with the informational response: I|&lt;br /&gt;
                            * For the &#039;I|nets|&#039; line&lt;br /&gt;
                                  o The third field contains the supported networks joined by &#039;-&#039;. &lt;br /&gt;
                            * For the &#039;I|networks|&#039; line&lt;br /&gt;
                                  o Interpret the fields from 3 and beyond as individual network names to challenge against. &lt;br /&gt;
                      # Examples&lt;br /&gt;
                            *&lt;br /&gt;
                                  o I|nets|gnutella-gnutella2&lt;br /&gt;
                                  o I|networks|gnutella|gnutella2 &lt;br /&gt;
    * Update Extension Variables:&lt;br /&gt;
          o x_leaves&lt;br /&gt;
                + Number of leaves running on a given hub or ultrapeer.&lt;br /&gt;
                + Value must not be greater than an integer value of 2047.&lt;br /&gt;
                + Note: It is important to know that PHP automaticaly replace dots with underscores, so to keep compatibility with old/new version of clients all caches should support both variants, example: x.leaves x_leaves&lt;br /&gt;
          o x_max&lt;br /&gt;
                + Maximum number of leaves possible on a given hub or ultrapeer.&lt;br /&gt;
                + Value must not be greater than an integer value of 2047. &lt;br /&gt;
          o uptime&lt;br /&gt;
                + Value submitted must be an integer value of the number of seconds of uptime.&lt;br /&gt;
                + Value must not be greater than an integer value of 1 year (31536000) and less than 1 hour (60). &lt;br /&gt;
&lt;br /&gt;
Pinging Caches With Your Cache&lt;br /&gt;
&lt;br /&gt;
    * Please follow this standard:&lt;br /&gt;
          o Client: TEST&lt;br /&gt;
          o Version: Your Cache&#039;s Name&lt;br /&gt;
                + The old value for &amp;quot;version&amp;quot; was 1 &lt;br /&gt;
    * Some variables to attach to the ping (compatibility):&lt;br /&gt;
          o multi&lt;br /&gt;
                + Used by some gwcs in their pings to other gwcs.&lt;br /&gt;
                + It tells the pinged cache to ignore the &amp;quot;net&amp;quot; parameter (so it should never say network not supported) and outputting the pong using this format, if possible, &amp;quot;I|pong|[cache name] [cache version]|[supported networks list]|[url adding is enabled]&amp;quot; - example: I|pong|Skulls 0.2.8a|gnutella-gnutella2|1&lt;br /&gt;
                + Used by Skulls GWC only. &lt;br /&gt;
          o cache&lt;br /&gt;
                + This is added to every request made by some gwcs, it is for statistical purposes only.&lt;br /&gt;
                + It simply tells the remote cache that the client is a GWC. &lt;br /&gt;
    * Help&lt;br /&gt;
          o For PHP&lt;br /&gt;
                + Use the fsockopen() function to open a connection to a cache.&lt;br /&gt;
                      # Make sure you &amp;quot;write&amp;quot; to the fsockopen carry value to open the GWC&#039;s target file.&lt;br /&gt;
                            * http://us.php.net/manual/en/function.fsockopen.php &lt;br /&gt;
&lt;br /&gt;
Variable Combination Standards&lt;br /&gt;
&lt;br /&gt;
    * Net variable decides specification!&lt;br /&gt;
          o There are many ways to determine spec., but going with net is the safe way.&lt;br /&gt;
          o Skulls GWC does not use the network parameter to determine specification level.&lt;br /&gt;
          o Beacon Cache (I and II) uses the network parameter to determine the specification level. &lt;br /&gt;
    * Your cache needs to be able to process certain combinations of variables.&lt;br /&gt;
          o Update variable&lt;br /&gt;
                + Update should not fail if absent if spec. 2.&lt;br /&gt;
                      # A Specification 2 parameter. &lt;br /&gt;
    * Spec 1 parameters used in Spec 2:&lt;br /&gt;
          o Should still accept hostfile and urlfile responses for spec. 2.&lt;br /&gt;
                + Beacon Cache (I and II) accepts these parameters on spec 2. &lt;br /&gt;
    * The &#039;spec&#039; paameter can be used to force a specification:&lt;br /&gt;
          o Only known to exist in Beacon Cache II, it can force the request to be handled as a specification 1 or 2 request.&lt;br /&gt;
          o Spec 1 = &#039;spec=1&#039;&lt;br /&gt;
          o Spec 2 = &#039;spec=2&#039;&lt;br /&gt;
          o If &#039;spec&#039; is not equal to any current spec, then default to the predetermined spec. &lt;br /&gt;
    * Multiple variable requests&lt;br /&gt;
          o If for instance a ping and request exist, you should always handle them properly.&lt;br /&gt;
                + Same goes with other combos like an update and ping, statfile + ping and info. &lt;br /&gt;
          o Handle multiple variables as BEST as possible!&lt;br /&gt;
                + Some scanners and GWCs like to fit all their requests into one URL send. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;row recovery, end&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Further Information:&lt;br /&gt;
&lt;br /&gt;
* [http://www.gnucleus.com/gwebcache/ Original GWC site]&lt;br /&gt;
** [http://gnucleus.sourceforge.net/gwebcache/specs.html GWC Spec. 1]&lt;br /&gt;
** [http://gnucleus.sourceforge.net/gwebcache/newgwc.html GWC Spec. 2] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;content recovered from last aviable backup&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Gnutella Web Cache===&lt;br /&gt;
Gnutella requires Gnutella Web Caches (GWC) to get IPs to establish a connection to the network.  These are critical to ensuring the health of the network.  If you have a dedicated server and can spare some extra bandwidth then please consider running a GWC.  People that don&#039;t have a dedicated server or are on normal broadband consumer lines should not run a cache from home.&lt;br /&gt;
&lt;br /&gt;
A GWC is a simple script that can be put on any webserver that supports one of the following scripting languages:&lt;br /&gt;
*JSP (Java Servlet)&lt;br /&gt;
**[http://web.archive.org/web/20061108091447/http://www.mager.org/GWebCache/ Java Servlet GWebCache Application (Archive.org)]&lt;br /&gt;
*C&lt;br /&gt;
**[http://ghostwhitecrab.com/crab/ GhostWhiteCrab]&lt;br /&gt;
*Perl &lt;br /&gt;
**[http://www.jonatkins.com/perlgcache/ Jon Atkins&#039; perlgcache] &lt;br /&gt;
**The original [http://www.gnucleus.com/gwebcache/dist/ GnuWebCache]&lt;br /&gt;
*PHP &lt;br /&gt;
**[http://gwcii.sourceforge.net/ PHPGnuCacheII] - MySQL&lt;br /&gt;
**[http://www.bazookanetworks.com Bazooka G2WC] (recommended) - flat files&lt;br /&gt;
**[http://sourceforge.net/projects/skulls/ Skulls! Multi-Network WebCache] - flat files&lt;br /&gt;
=== Further Information: ===&lt;br /&gt;
* [http://www.gnucleus.com/gwebcache/ Original GWC site]&lt;br /&gt;
&lt;br /&gt;
[[Category:External Links]]&lt;/div&gt;</summary>
		<author><name>Ale5000</name></author>
	</entry>
	<entry>
		<id>https://shareaza.sourceforge.net/w/index.php?title=GWC_specs&amp;diff=11505</id>
		<title>GWC specs</title>
		<link rel="alternate" type="text/html" href="https://shareaza.sourceforge.net/w/index.php?title=GWC_specs&amp;diff=11505"/>
		<updated>2015-03-25T15:00:10Z</updated>

		<summary type="html">&lt;p&gt;Ale5000: Added note about x.leaves&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;For general information on GWCs, have a look at the [[GWC]] Wiki page.&#039;&#039;&lt;br /&gt;
{{do not translate}}&lt;br /&gt;
This page is thought to give an overview over the GWC specifications as they are implemented into Shareaza.&lt;br /&gt;
&lt;br /&gt;
A GWC is a simple script that can be put on any webserver that supports one of the following scripting languages: &lt;br /&gt;
&lt;br /&gt;
* JSP (Java Servlet) &lt;br /&gt;
** [http://www1.mager.org/GWebCache/ Jums Web Cache] (Excellent for heavy loads) &lt;br /&gt;
* C &lt;br /&gt;
** [http://wiki.limewire.org/index.php?title=GhostWhiteCrab GhostWhiteCrab] (For dedicated server environments and people who know how to compile C source code!) &lt;br /&gt;
* ASP &lt;br /&gt;
** [http://www.edazzle.net/downloads/gerry.zip Gerry GWC] &lt;br /&gt;
** [https://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=7846&amp;amp;lngWId=4 Lynn (v.s. 0.5)] &lt;br /&gt;
** [https://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=7731&amp;amp;lngWId=4 Lynn (v.s. 0.4)] &lt;br /&gt;
** [http://www.poundwebhosting.com/cgi-bin/lynnx.asp LynnX] &lt;br /&gt;
* Perl &lt;br /&gt;
** [http://www.jonatkins.com/perlgcache/ Jon Atkins&#039; perlgcache] &lt;br /&gt;
** The original [http://www.gnucleus.com/gwebcache/dist/ GnuWebCache] &lt;br /&gt;
&#039;&#039;&#039;PHP&#039;&#039;&#039; &#039;&#039;(Tip: PHP GWCs are usually the easiest to run and setup on a server.)&#039;&#039;&lt;br /&gt;
** [http://gwcii.sourceforge.net/ PHPGnuCacheII] &lt;br /&gt;
** [http://www.bazookanetworks.com/ Bazooka G2WC] &lt;br /&gt;
* The original [http://www.gnucleus.com/gwebcache/dist/ GnuWebCache] &#039;&#039;(PHP version is no longer supported)&#039;&#039; &lt;br /&gt;
** [http://sourceforge.net/projects/skulls/ Skulls! Multi-Network WebCache] &lt;br /&gt;
** [http://sourceforge.net/projects/beaconcache/ Beacon Cache] &lt;br /&gt;
** [http://code.google.com/p/cachechu/ Cachechu G2WC] &lt;br /&gt;
&lt;br /&gt;
== Breakdown Of The Gnutella Web Caches: == &lt;br /&gt;
{{RecoveredPage|I recently put this into a table. The contents need to be verified -- [[User:Cyko 01|Cyko 01]]}}&lt;br /&gt;
&lt;br /&gt;
{| width= auto; style=&amp;quot;font-size: 85%; text-align: center;text-valign: middle;&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Cache:&lt;br /&gt;
! rowspan=1 |Gnutella:&lt;br /&gt;
! rowspan=1 |Gnutella2:&lt;br /&gt;
! rowspan=1 |Spec 1:&lt;br /&gt;
! rowspan=1 |Spec 2:&lt;br /&gt;
! rowspan=1 |Flat-File:&lt;br /&gt;
! rowspan=1 |SQL:&lt;br /&gt;
! rowspan=1 |Installer:&lt;br /&gt;
! rowspan=1 |Other Networks:&lt;br /&gt;
! rowspan=1 |Different network instances:&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Beacon Cache (Core 2)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|style=&amp;quot;background: #CCFFCC;&amp;quot;| Yes (As of 0.2.0 Alpha)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Beacon Cache (Core 1)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Skulls&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|JumsWebCache&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|GnuWebCache (Perl)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|GnuWebCache (PHP) &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|GhostWhiteCrab(GWC) &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|style=&amp;quot;background: #FFFFCC;&amp;quot;| N/A&lt;br /&gt;
|style=&amp;quot;background: #FFFFCC;&amp;quot;| N/A&lt;br /&gt;
|style=&amp;quot;background: #FFFFCC;&amp;quot;| N/A&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|PHPGnuCacheII &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Bazooka &lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Cachechu&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Perlgcache&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Gerry GWC (v2)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Gerry GWC (v1)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Lynn&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|LynnX&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Shareaza Specific Details == &lt;br /&gt;
&lt;br /&gt;
{{RecoveredPage|Warninig: here I have pasted better formatted recovery, but not verified. Row recovery has been mooved below as I don&#039;t know if anybody has made any changes in it. If not then row recovery can be deleted. Paste starts from &amp;gt;&amp;gt;Shareaza Specific Details&amp;lt;&amp;lt;, here, and ends at second &amp;gt;&amp;gt;Shareaza Specific Details&amp;lt;&amp;lt; I hope it is visible.  --[[User:Ocexyz|Ocexyz]] 23:27, 27 July 2009 (UTC)}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Get String Breakdown:&#039;&#039;&#039; &lt;br /&gt;
* Update a leaf &lt;br /&gt;
** &amp;quot;?update=1&amp;amp;ip=(ip):(port)&amp;amp;x_leaves=(leaf count) &lt;br /&gt;
* Ping Variable &lt;br /&gt;
** Appends &amp;amp;ping=1 to identify the cache name in debug messages (for gnutella and gnutella2 in 2.4.0.0, but only for gnutella2 now in 2.4.0.X for spec1 cache compatibility). &lt;br /&gt;
** This feature new to Shareaza. &lt;br /&gt;
* Network Variable &lt;br /&gt;
** Appends &amp;amp;net=gnutella2 on Gnutella2 queries. &lt;br /&gt;
** Does NOT append a network variable on Gnutella(1) queries. &lt;br /&gt;
* Client Name / Version Format (2.4.0.0 and earlier): &lt;br /&gt;
** &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) ) &lt;br /&gt;
** &amp;amp;version=(Shareaza&#039;s version) &lt;br /&gt;
* Client Name / Version Format (2.4.0.X): &lt;br /&gt;
** If Gnutella &lt;br /&gt;
*** &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) ) &lt;br /&gt;
*** &amp;amp;version=(Shareaza&#039;s version) &lt;br /&gt;
** If Gnutella2 &lt;br /&gt;
*** &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) )+(Shareaza&#039;s version) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GWC Response Matching:&#039;&#039;&#039; &lt;br /&gt;
* i| &lt;br /&gt;
** Informational output alone will not be taken as GWC &#039;success.&#039; &lt;br /&gt;
* i|access|period|(time in sec.) &lt;br /&gt;
** Time in seconds before Shareaza is allowed to make a request to the cache. &lt;br /&gt;
* i|update|period|(time in sec.) &lt;br /&gt;
** Time in seconds before Shareaza is allowed to update to the cache. &lt;br /&gt;
* i|force|remove and i|update|warning|bad url &lt;br /&gt;
** Remove the GWC from the internal list. &lt;br /&gt;
* Some Response Matches (added in 2.3.1.X) &lt;br /&gt;
** i|NO-URL-NO-HOSTS &lt;br /&gt;
*** Outputs warning of the cache being totally empty to the system log. &lt;br /&gt;
** i|NO-URL &lt;br /&gt;
*** Outputs warning of the cache having no alternative URLs to the system log. &lt;br /&gt;
** i|NO-HOSTS &lt;br /&gt;
*** Outputs warning of the cache having no hosts to the system log. &lt;br /&gt;
** i|warning| &lt;br /&gt;
*** Outputs warning of the cache to the system log. &lt;br /&gt;
** ERROR Something Failed &lt;br /&gt;
*** Outputs warning of the cache to the system log(Buggy Bazooka GWCs workaround). &lt;br /&gt;
** i|warning|You came back too early (2.3.1.X) &lt;br /&gt;
** i|warning|client|early (2.3.1.X) &lt;br /&gt;
** WARNING: You came back too early (2.3.1.X) &lt;br /&gt;
** ERROR: Client returned too early (2.3.1.X) &lt;br /&gt;
*** Flood detection for the update side. &lt;br /&gt;
*** Outputs GWebCache(update) Too many connection attempts to the system log. &lt;br /&gt;
** too early (2.3.1.X) &lt;br /&gt;
** early (2.4.0.X) &lt;br /&gt;
*** Flood detection for the request side. &lt;br /&gt;
*** Outputs GWebCache URL: Too many connection attempts to the system log. &lt;br /&gt;
** i|update|OK &lt;br /&gt;
*** Outputs &amp;quot;GWebCache(v2) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
** OK &lt;br /&gt;
*** Outputs &amp;quot;GWebCache(v1) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
&lt;br /&gt;
== Gnutella Web Cache Specifications ==&lt;br /&gt;
==== Specification 1: ====&lt;br /&gt;
* &#039;&#039;&#039;Networks Served&#039;&#039;&#039; &lt;br /&gt;
** Gnutella &lt;br /&gt;
* &#039;&#039;&#039;Format&#039;&#039;&#039; &lt;br /&gt;
** Update went fine: &lt;br /&gt;
*** Ex: OK &lt;br /&gt;
** Update Warning (Small prob., not that bad): &lt;br /&gt;
*** Ex: OKWARNING: Error Message &lt;br /&gt;
&lt;br /&gt;
* Severe Warning (No &#039;OK&#039; message sent) &lt;br /&gt;
** Ex: WARNING: Error Message&lt;br /&gt;
&lt;br /&gt;
* URL Output: &lt;br /&gt;
** Ex: [http://somefreakinrandomcache.com/cache/gcache.php http://somefreakinrandomcache.com/cache/gcache.php] &lt;br /&gt;
*** OR - WITH A PORT NUMBER (If not 80) &lt;br /&gt;
**** Ex: [http://somefreakinrandomcache.com:8080/cache/gcache.php http://somefreakinrandomcache.com:8080/cache/gcache.php] &lt;br /&gt;
* Host Output: &lt;br /&gt;
** Ex: 66.132.55.12:6346 &lt;br /&gt;
* Pong (ping variable response) - was explained below under the topic: variables. &lt;br /&gt;
* &#039;&#039;&#039;Example Cache Output (Beacon Cache) For urlfile Command&#039;&#039;&#039; &lt;br /&gt;
** Example &amp;quot;urlfile Output&amp;quot; URL: Ex: [http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;urlfile=1 http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;urlfile=1] &lt;br /&gt;
*** Example URL Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Getting urls with a pong combined&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| PONG Beacon Cache 0.1.5D Beta[http://gwc.frodoslair.net/skulls/skulls.php http://gwc.frodoslair.net/skulls/skulls.php][http://bbs.robertwoolley.co.uk/GWebCache/gcache.php http://bbs.robertwoolley.co.uk/GWebCache/gcache.php][http://g2.tjtech.org/g2/ http://g2.tjtech.org/g2/][http://g2.tjtech.org/g2/index.php http://g2.tjtech.org/g2/index.php][http://gwc.monnsta.net/ http://gwc.monnsta.net/][http://holograph.uni.cc/other/skulls.php http://holograph.uni.cc/other/skulls.php][http://gwc.nickstallman.net/ http://gwc.nickstallman.net/][http://gwc.eod.cc/skulls.php http://gwc.eod.cc/skulls.php][http://gwc.frodoslair.net/skulls/skulls http://gwc.frodoslair.net/skulls/skulls][http://gwc.werwin.net/skulls.php http://gwc.werwin.net/skulls.php] &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
* &#039;&#039;&#039;Example Cache Output (Beacon Cache) For hostfile Command&#039;&#039;&#039; &lt;br /&gt;
** Example &amp;quot;hostfile Output&amp;quot; URL: Ex: [http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;hostfile=1 http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;hostfile=1] &lt;br /&gt;
*** Example Host Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Getting the hosts with a pong combined&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| PONG Beacon Cache 0.1.5D Beta71.8.84.153:391599.248.214.157:2752969.60.241.55:16369193.253.239.246:3021868.156.175.121:634871.179.7.241:1834474.196.22.241:634812.210.197.194:10531222.150.143.77:1000058.85.231.135:634624.141.199.164:2020572.175.201.195:634869.81.129.228:488097.81.221.63:1321970.15.130.224:7759216.211.188.106:5190375.167.168.156:4866012.214.14.3:3591676.177.244.106:2418098.165.218.139:3963068.112.182.125:368568.117.204.57:2348265.12.154.25:4076069.180.47.169:571175.138.40.173:2498798.201.19.0:3366270.187.2.144:634868.186.209.107:1442969.159.7.61:634876.208.176.196:48199&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
* &#039;&#039;&#039;For combining a hostfile and urlfile request:&#039;&#039;&#039; &lt;br /&gt;
** Warning: This is non-standard. &lt;br /&gt;
** &#039;&#039;&#039;Example Cache Output (Beacon Cache) For bfile Command&#039;&#039;&#039; &lt;br /&gt;
*** Example &amp;quot;bfile Output&amp;quot; URL: Ex: [http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;bfile=1 http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;bfile=1] &lt;br /&gt;
**** Example Host and URL Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Getting the hosts and urls with a pong combined&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| PONG Beacon Cache 0.1.5D Beta71.8.84.153:391599.248.214.157:2752969.60.241.55:16369193.253.239.246:3021868.156.175.121:634871.179.7.241:1834474.196.22.241:634812.210.197.194:10531222.150.143.77:1000058.85.231.135:634624.141.199.164:2020572.175.201.195:634869.81.129.228:488097.81.221.63:1321970.15.130.224:7759216.211.188.106:5190375.167.168.156:4866012.214.14.3:3591676.177.244.106:2418098.165.218.139:3963068.112.182.125:368568.117.204.57:2348265.12.154.25:4076069.180.47.169:571175.138.40.173:2498798.201.19.0:3366270.187.2.144:634868.186.209.107:1442969.159.7.61:634876.208.176.196:48199[http://gwc.frodoslair.net/skulls/skulls.php http://gwc.frodoslair.net/skulls/skulls.php][http://bbs.robertwoolley.co.uk/GWebCache/gcache.php http://bbs.robertwoolley.co.uk/GWebCache/gcache.php][http://g2.tjtech.org/g2/ http://g2.tjtech.org/g2/][http://g2.tjtech.org/g2/index.php http://g2.tjtech.org/g2/index.php][http://gwc.monnsta.net/ http://gwc.monnsta.net/][http://holograph.uni.cc/other/skulls.php http://holograph.uni.cc/other/skulls.php][http://gwc.nickstallman.net/ http://gwc.nickstallman.net/][http://gwc.eod.cc/skulls.php http://gwc.eod.cc/skulls.php][http://gwc.frodoslair.net/skulls/skulls http://gwc.frodoslair.net/skulls/skulls][http://gwc.werwin.net/skulls.php http://gwc.werwin.net/skulls.php] &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Variables&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Mandatory&#039;&#039;&#039; &lt;br /&gt;
** ping: &lt;br /&gt;
*** Response should have this always: PONG&lt;br /&gt;
*** After, put the cache&#039;s name. ex: PONG fakecache 0.01&lt;br /&gt;
** client: &lt;br /&gt;
*** Four letter code of the client. ex: RAZA &lt;br /&gt;
** version: &lt;br /&gt;
*** Version number of the client. &lt;br /&gt;
** urlfile: &lt;br /&gt;
*** Used by the client to request alternate cache urls. &lt;br /&gt;
** hostfile: &lt;br /&gt;
*** Used by the client to request IPs with port numbers attached. &lt;br /&gt;
** url: &lt;br /&gt;
*** Client update giving an alternate cache URL. &lt;br /&gt;
*** Formatted with a http:// prefix to each cache. &lt;br /&gt;
** ip: &lt;br /&gt;
*** Client update giving one&#039;s IP to submit. &lt;br /&gt;
** url1: &lt;br /&gt;
*** OLD OUTDATED Client update giving an alternate cache URL. &lt;br /&gt;
*** Formatted with a http:// prefix to each cache. &lt;br /&gt;
** ip1: &lt;br /&gt;
*** OLD OUTDATED Client update giving one&#039;s IP to submit. &lt;br /&gt;
* &#039;&#039;&#039;Optional&#039;&#039;&#039; &lt;br /&gt;
** bfile: &lt;br /&gt;
*** For clients to request both URLs and IPs from the cache at the same time. &lt;br /&gt;
** statfile: &lt;br /&gt;
*** Statistics of the cache request: &lt;br /&gt;
**** First line: Total requests of the cache number. &lt;br /&gt;
**** Second line: Requests of the cache an hour number. &lt;br /&gt;
**** Third line: Updates of the cache an hour number.&lt;br /&gt;
&lt;br /&gt;
==== Specification 2: ====&lt;br /&gt;
&#039;&#039;&#039;Networks Served&#039;&#039;&#039; &lt;br /&gt;
* Gnutella, Gnutella2, etc. &lt;br /&gt;
&#039;&#039;&#039;Format&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Information Output&#039;&#039;&#039; &lt;br /&gt;
** Starts with: I| &lt;br /&gt;
*** &#039;&#039;&#039;Categories&#039;&#039;&#039; &lt;br /&gt;
**** &#039;&#039;&#039;Pong&#039;&#039;&#039; (ping variable response) - Described below under the topic: variables. &lt;br /&gt;
**** &#039;&#039;&#039;Update Status Response&#039;&#039;&#039; &lt;br /&gt;
***** Format: I|update &lt;br /&gt;
***** &#039;&#039;&#039;Responses&#039;&#039;&#039; &lt;br /&gt;
****** I|update|OK &lt;br /&gt;
******* - Everything went fine. &lt;br /&gt;
****** I|update|OK|WARNING &lt;br /&gt;
******* Small warning. &lt;br /&gt;
****** I|update|WARNING &lt;br /&gt;
******* Severe warning &lt;br /&gt;
**** &#039;&#039;&#039;Plain Warnings&#039;&#039;&#039; &lt;br /&gt;
***** Format: I|WARNING &lt;br /&gt;
****** Append any warning messages after it - Ex: I|WARNING|You came back too early &lt;br /&gt;
**** &#039;&#039;&#039;Extra Info&#039;&#039;&#039; - Described below under the topic: variables. &lt;br /&gt;
* &#039;&#039;&#039;Host Output&#039;&#039;&#039; &lt;br /&gt;
** Starts with: H| &lt;br /&gt;
** Add the IP with its port: &lt;br /&gt;
*** Ex: H|0.0.0.0:6346 &lt;br /&gt;
** Add the time, thereafter, of the host&#039;s (In seconds*) time in cache: &lt;br /&gt;
*** Ex: H|0.0.0.0:6346|45 &lt;br /&gt;
** If cluster exists with cluster=somerandomwords &lt;br /&gt;
*** Add the clustered words after the host&#039;s age: &lt;br /&gt;
**** Ex: H|0.0.0.0:6346|45|somerandomwords &lt;br /&gt;
* &#039;&#039;&#039;URL Output&#039;&#039;&#039; &lt;br /&gt;
** Starts with: U| &lt;br /&gt;
** Add the URL with http:// before it, plus the port (if it&#039;s not 80). &lt;br /&gt;
*** Ex: U|[http://somerandomcache.com/ http://somerandomcache.com/] &lt;br /&gt;
** Add the time, thereafter, of the URL&#039;s time (In seconds*) in cache: &lt;br /&gt;
*** Ex: U|[http://somerandomcache.com/%7C45 http://somerandomcache.com/|45] &lt;br /&gt;
* &#039;&#039;&#039;Example Cache Output (Beacon Cache) For get Command&#039;&#039;&#039; &lt;br /&gt;
** Example URL: [http://grantgalitz.com/Beacon/gwc.php?get=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;net=gnutella2&amp;amp;ping=1 http://grantgalitz.com/Beacon/gwc.php?get=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;net=gnutella2&amp;amp;ping=1] &lt;br /&gt;
*** Example &amp;quot;Get&amp;quot; Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Getting the hosts and urls with a pong combined&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| I|pong|Beacon Cache 0.1.5D Beta|gnutella-gnutella2H|65.9.200.243:4968|248261H|68.228.129.75:44599|242678H|98.240.196.122:8206|240719H|76.104.12.133:14921|218273H|69.136.1.12:3924|211610H|81.154.208.71:8595|174402H|97.96.105.51:2076|153610H|74.192.153.212:39340|144203H|72.190.106.57:12584|132984H|78.93.71.132:12334|125668H|82.43.248.184:27560|97974H|196.205.224.97:6357|86763H|74.129.219.30:33172|82005H|76.104.12.133:19185|57182H|69.59.83.131:18442|38628U|[http://www.k33bz.com/g2/bazooka.php%7C248639 http://www.k33bz.com/g2/bazooka.php|248639]U|[http://gwebcache.ns1.net/%7C248592 http://gwebcache.ns1.net/|248592]U|[http://gwc2.wodi.org/skulls.php%7C248384 http://gwc2.wodi.org/skulls.php|248384]U|[http://gwc.guufshop.com/skulls/skulls.php%7C248322 http://gwc.guufshop.com/skulls/skulls.php|248322]U|[http://groovy.syxy.com/up/skulls.php%7C248300 http://groovy.syxy.com/up/skulls.php|248300]U|[http://g2.tjtech.org/g2/index.php%7C247770 http://g2.tjtech.org/g2/index.php|247770]U|[http://midian.jayl.de/g2/bazooka.php%7C240719 http://midian.jayl.de/g2/bazooka.php|240719]U|[http://www.dom2porno.info/skulls/skulls.php%7C207473 http://www.dom2porno.info/skulls/skulls.php|207473]U|[http://gwc.frodoslair.net/skulls/skulls%7C125668 http://gwc.frodoslair.net/skulls/skulls|125668]U|[http://holograph.uni.cc/other/skulls.php%7C9642 http://holograph.uni.cc/other/skulls.php|9642] &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Variables&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Mandatory&#039;&#039;&#039; &lt;br /&gt;
** ping: &lt;br /&gt;
*** Main Part: I|pong| &lt;br /&gt;
*** Then add the cache name and version: I|pong|fakecache 0.01 &lt;br /&gt;
*** Then lastly add the network support: &lt;br /&gt;
**** I|pong|fakecache 0.01|gnutella &lt;br /&gt;
***** - Gnutella only &lt;br /&gt;
**** I|pong|fakecache 0.01|gnutella2 &lt;br /&gt;
***** - Gnutella2 only &lt;br /&gt;
**** I|pong|fakecache 0.01|gnutella-gnutella2 &lt;br /&gt;
***** - Gnutella and Gnutella2 served &lt;br /&gt;
** get: &lt;br /&gt;
*** Used by clients to requests alternate cache URLs along with IPs and their port numbers. &lt;br /&gt;
** update: &lt;br /&gt;
*** url: &lt;br /&gt;
**** Client update giving an alternate cache URL. &lt;br /&gt;
**** Formatted with a http:// prefix to each cache. &lt;br /&gt;
*** ip: &lt;br /&gt;
**** Client update giving one&#039;s IP to submit. &lt;br /&gt;
** net: &lt;br /&gt;
*** Which network to serve the client. &lt;br /&gt;
**** Gnutella &lt;br /&gt;
***** Ex: net=gnutella &lt;br /&gt;
**** Gnutella2 &lt;br /&gt;
***** Ex: net=gnutella2 &lt;br /&gt;
**** &#039;&#039;&#039;Should always be lowercase&#039;&#039;&#039; &lt;br /&gt;
***** GWCs should automatically convert network name given to lowercase to prevent Net ID mismatches &lt;br /&gt;
&lt;br /&gt;
solely on case alone. &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
* &lt;br /&gt;
** client: &lt;br /&gt;
*** Four letter code of the client. ex: RAZA &lt;br /&gt;
** version: &lt;br /&gt;
*** Version number of the client. &lt;br /&gt;
* &#039;&#039;&#039;Optional&#039;&#039;&#039; &lt;br /&gt;
** cluster: &lt;br /&gt;
*** To add extra info to an IP update. &lt;br /&gt;
**** Output by cache: H|0.0.0.0|AGE OF HOST (Seconds)|clustering some bull**** &lt;br /&gt;
** statfile: &lt;br /&gt;
*** Exactly like the specification 1 statfile &#039;&#039;&#039;(Same routine and output style)&#039;&#039;&#039;. &lt;br /&gt;
*** Statistics of the cache request: &lt;br /&gt;
**** First line: Total requests of the cache number. &lt;br /&gt;
**** Second line: Requests of the cache an hour number. &lt;br /&gt;
**** Third line: Updates of the cache an hour number. &lt;br /&gt;
&lt;br /&gt;
==== Specification 2.1 ====&lt;br /&gt;
&#039;&#039;&#039;This is an extension of specification 2, not a separate specification!&#039;&#039;&#039; &lt;br /&gt;
Pong extension &lt;br /&gt;
* Append the networks supported joined by a hyphen &#039;-&#039;. &lt;br /&gt;
* Used for client-side validation of networks supported and for network support reporting to other web caches. &lt;br /&gt;
* Format: &lt;br /&gt;
** I|pong|cache name|network names joined by &#039;-&#039; &lt;br /&gt;
** Format Examples: &lt;br /&gt;
*** I|pong|fakecache 0.01|gnutella &lt;br /&gt;
**** - Gnutella only &lt;br /&gt;
*** I|pong|fakecache 0.01|gnutella2 &lt;br /&gt;
**** - Gnutella2 only &lt;br /&gt;
*** I|pong|fakecache 0.01|gnutella-gnutella2 &lt;br /&gt;
**** - Gnutella and Gnutella2 served &lt;br /&gt;
Host Output &lt;br /&gt;
* Just like specification 2, but with more fields supported for host output. &lt;br /&gt;
** H|ip:port|age in cache|clustering|leaves|4 letter vendor code|reported uptime of host|max. leaves possible &lt;br /&gt;
*** The host, age, and clustering fields are all still the same as in specification 2. &lt;br /&gt;
*** The leaf count of the hub reported is in the 5th field. &lt;br /&gt;
*** The vendor code with version number is in the 6th field. &lt;br /&gt;
Request Control Variables: &lt;br /&gt;
* getleaves &lt;br /&gt;
** Used to obtain leaf counts of hubs given &lt;br /&gt;
** 4th field ultilized for current leaf count. &lt;br /&gt;
** 7th field ultilized for maximum leaf slots possible. &lt;br /&gt;
** Use this as &#039;getleaves=1&#039; or &#039;getleaves&#039; to enable. &lt;br /&gt;
* getclusters &lt;br /&gt;
** Enables/Disables clustering. &lt;br /&gt;
** Use this as &#039;getclusters=1&#039;. &lt;br /&gt;
** Using &#039;getclusters&#039; or &#039;getclusters=0&#039; disables cluster output. &lt;br /&gt;
* getvendors &lt;br /&gt;
** Used to obtain the vendor code w/ version number of the hubs given. &lt;br /&gt;
** Found in the 5th field. &lt;br /&gt;
** Use this as &#039;getvendors=1&#039; or &#039;getvendors&#039; to enable. &lt;br /&gt;
* getuptime &lt;br /&gt;
** Used to obtain the vendor code w/ version number of the hubs given. &lt;br /&gt;
** Value is static, do not change the value given when time passes. &lt;br /&gt;
** Found in the 6th field. &lt;br /&gt;
** Use this as &#039;getuptime=1&#039; or &#039;getuptime&#039; to enable. &lt;br /&gt;
* spec &lt;br /&gt;
** To force the specification parameter &lt;br /&gt;
** Currently is only supported by Beacon Cache II &lt;br /&gt;
* pv &lt;br /&gt;
** Similar to the &#039;spec&#039; parameter, except that it does not force, instead it simply negotiates the specification. &lt;br /&gt;
Special Data Requests &lt;br /&gt;
* info &lt;br /&gt;
** Outputs extra details of your cache. &lt;br /&gt;
*** Start with the informational response: I| &lt;br /&gt;
**** Ex: I|open-source|1 &lt;br /&gt;
* support &lt;br /&gt;
** Outputs USEFUL details of your cache. &lt;br /&gt;
*** Start with the informational response: I| &lt;br /&gt;
**** Ex: I|support|gnutella2 &lt;br /&gt;
* getnetworks &lt;br /&gt;
** Outputs the enabled networks in two formats. &lt;br /&gt;
*** Start with the informational response: I| &lt;br /&gt;
**** For the &#039;I|nets|&#039; line &lt;br /&gt;
***** The third field contains the supported networks joined by &#039;-&#039;. &lt;br /&gt;
**** For the &#039;I|networks|&#039; line &lt;br /&gt;
***** Interpret the fields from 3 and beyond as individual network names to challenge against. &lt;br /&gt;
*** Examples &lt;br /&gt;
**** &lt;br /&gt;
***** I|nets|gnutella-gnutella2 &lt;br /&gt;
***** I|networks|gnutella|gnutella2 &lt;br /&gt;
Update Extension Variables: &lt;br /&gt;
* x_leaves &lt;br /&gt;
** Number of leaves running on a given hub or ultrapeer. &lt;br /&gt;
** &#039;&#039;&#039;Value must not be greater than an integer value of 2047.&#039;&#039;&#039; &lt;br /&gt;
** &#039;&#039;&#039;Note: It is important to know that PHP automaticaly replace dots with underscores, so to keep compatibility with old/new version of clients all caches should support both variants, example: x.leaves x_leaves&#039;&#039;&#039; &lt;br /&gt;
* x_max &lt;br /&gt;
** Maximum number of leaves possible on a given hub or ultrapeer. &lt;br /&gt;
** &#039;&#039;&#039;Value must not be greater than an integer value of 2047.&#039;&#039;&#039; &lt;br /&gt;
* uptime &lt;br /&gt;
** Value submitted must be an integer value of the number of seconds of uptime. &lt;br /&gt;
** &#039;&#039;&#039;Value must not be greater than an integer value of 1 year (31536000) and less than 1 hour (60).&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== Pinging Caches With Your Cache ===&lt;br /&gt;
&#039;&#039;&#039;Please follow this standard:&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Client: TEST&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Version: Your Cache&#039;s Name&#039;&#039;&#039; &lt;br /&gt;
** The old value for &amp;quot;version&amp;quot; was 1 &lt;br /&gt;
&#039;&#039;&#039;Some variables to attach to the ping (compatibility):&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;multi&#039;&#039;&#039; &lt;br /&gt;
** Used by some gwcs in their pings to other gwcs. &lt;br /&gt;
** &amp;lt;nowiki&amp;gt;It tells the pinged cache to ignore the &amp;quot;net&amp;quot; parameter (so it should never say network not supported) and outputting the pong using this format, if possible, &amp;quot;I|pong|[cache name] [cache version]|[supported networks list]&amp;quot; - example: I|pong|Skulls 0.2.9|gnutella-gnutella2 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
** Used by Skulls GWC only, supported by Skulls and Beacon Cache II. &lt;br /&gt;
* &#039;&#039;&#039;cache&#039;&#039;&#039; &lt;br /&gt;
** This is added to every request made by some gwcs, it is for statistical purposes only. &lt;br /&gt;
** It simply tells the remote cache that the client is a GWC. &lt;br /&gt;
&#039;&#039;&#039;Help&#039;&#039;&#039; &lt;br /&gt;
* For PHP &lt;br /&gt;
** Use the fsockopen() function to open a connection to a cache. &lt;br /&gt;
*** Make sure you &amp;quot;write&amp;quot; to the fsockopen carry value to open the GWC&#039;s target file. &lt;br /&gt;
**** [http://us.php.net/manual/en/function.fsockopen.php http://us.php.net/manual/en/function.fsockopen.php] &lt;br /&gt;
&lt;br /&gt;
=== Variable Combination Standards ===&lt;br /&gt;
&#039;&#039;&#039;Net variable decides specification!&#039;&#039;&#039; &lt;br /&gt;
* There are many ways to determine spec., but going with net is the safe way. &lt;br /&gt;
* Skulls GWC does not use the network parameter to determine specification level. &lt;br /&gt;
* Beacon Cache (I and II) uses the network parameter to determine the specification level. &lt;br /&gt;
&#039;&#039;&#039;Your cache needs to be able to process certain combinations of variables.&#039;&#039;&#039; &lt;br /&gt;
* Update variable &lt;br /&gt;
** Update should not fail if absent if spec. 2. &lt;br /&gt;
*** A Specification 2 parameter. &lt;br /&gt;
Spec 1 parameters used in Spec 2: &lt;br /&gt;
* Should still accept hostfile and urlfile responses for spec. 2. &lt;br /&gt;
** Beacon Cache (I and II) accepts these parameters on spec 2. &lt;br /&gt;
The &#039;spec&#039; paameter can be used to force a specification: &lt;br /&gt;
* Only known to exist in Beacon Cache II, it can force the request to be handled as a specification 1 or 2 request. &lt;br /&gt;
* Spec 1 = &#039;spec=1&#039; &lt;br /&gt;
* Spec 2 = &#039;spec=2&#039; &lt;br /&gt;
* If &#039;spec&#039; is not equal to any current spec, then default to the predetermined spec. &lt;br /&gt;
&#039;&#039;&#039;Multiple variable requests&#039;&#039;&#039; &lt;br /&gt;
* If for instance a ping and request exist, you should always handle them properly. &lt;br /&gt;
** Same goes with other combos like an update and ping, statfile + ping and info. &lt;br /&gt;
* Handle multiple variables as BEST as possible! &lt;br /&gt;
** Some scanners and GWCs like to fit all their requests into one URL send. &lt;br /&gt;
&lt;br /&gt;
=== Further Information: ===&lt;br /&gt;
* [http://www.gnucleus.com/gwebcache/ Original GWC] [http://www.gnucleus.com/gwebcache/ site] &lt;br /&gt;
** [http://gnucleus.sourceforge.net/gwebcache/specs.html GWC Spec. 1] &lt;br /&gt;
** [http://gnucleus.sourceforge.net/gwebcache/newgwc.html GWC Spec. 2] &lt;br /&gt;
&lt;br /&gt;
=== Gnutella Web Cache ===&lt;br /&gt;
Gnutella requires Gnutella Web Caches (GWC) to get IPs to establish a connection to the network.  These are critical to ensuring the health of the network.  If you have a dedicated server and can spare some extra bandwidth then please consider running a GWC.  People that don&#039;t have a dedicated server or are on normal broadband consumer lines should not run a cache from home.&lt;br /&gt;
&lt;br /&gt;
A GWC is a simple script that can be put on any webserver that supports one of the following scripting languages:&lt;br /&gt;
*JSP (Java Servlet)&lt;br /&gt;
**[http://web.archive.org/web/20061108091447/http://www.mager.org/GWebCache/ Java Servlet GWebCache Application (Archive.org)]&lt;br /&gt;
*C&lt;br /&gt;
**[http://ghostwhitecrab.com/crab/ GhostWhiteCrab]&lt;br /&gt;
*Perl &lt;br /&gt;
**[http://www.jonatkins.com/perlgcache/ Jon Atkins&#039; perlgcache] &lt;br /&gt;
**The original [http://www.gnucleus.com/gwebcache/dist/ GnuWebCache]&lt;br /&gt;
*PHP &lt;br /&gt;
**[http://gwcii.sourceforge.net/ PHPGnuCacheII] - MySQL&lt;br /&gt;
**[http://www.bazookanetworks.com Bazooka G2WC] (recommended) - flat files&lt;br /&gt;
**[http://sourceforge.net/projects/skulls/ Skulls! Multi-Network WebCache] - flat files&lt;br /&gt;
====Further Information:====&lt;br /&gt;
*[http://www.gnucleus.com/gwebcache/|Original GWC site]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{RecoveredPage|--&amp;gt;Saved in timestamp 20090421202728Retrieved from &amp;quot;[https://www.pantheraproject.net/wiki/index.php?title=GWC This page was last modified on April 18, 2009, at 23:25. &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;Copyright © 2002-2009 Shareaza Development Team. &amp;lt;/center&amp;gt;&amp;lt;center&amp;gt;[[Image:poweredby_mediawiki_88x31.png]] --[[User:Ocexyz|Ocexyz]] 16:20, 27 July 2009 (UTC)}}&lt;br /&gt;
&lt;br /&gt;
{{RecoveredPage|Warninig: here ends pasted better formatted recovery. Row recovery has been mooved below as I don&#039;t know if anybody has made any changes in it. If not then row recovery can be deleted I suppose. Paste starts from == Shareaza Specific Details == and ends at second == Shareaza Specific Details ==, here. I hope it is visible.  --[[User:Ocexyz|Ocexyz]] 16:20, 27 July 2009 (UTC)  }}&lt;br /&gt;
&lt;br /&gt;
==Shareaza Specific Details==&lt;br /&gt;
&lt;br /&gt;
{{RecoveredPage|Warninig: here ends pasted better formatted recovery. Row recovery has been mooved below as I don&#039;t know if anybody has made any changes in it. If not then row recovery can be deleted I suppose. Paste starts from &amp;gt;&amp;gt;Shareaza Specific Details&amp;lt;&amp;lt; and ends at second &amp;gt;&amp;gt; Shareaza Specific Details&amp;lt;&amp;lt;, here. I hope it is visible.  --[[User:Ocexyz|Ocexyz]] 23:27, 27 July 2009 (UTC)  }}&lt;br /&gt;
&lt;br /&gt;
* Get String Breakdown:&lt;br /&gt;
          o Update a leaf&lt;br /&gt;
                + &amp;quot;?update=1&amp;amp;ip=(ip):(port)&amp;amp;x_leaves=(leaf count) &lt;br /&gt;
          o Ping Variable&lt;br /&gt;
                + Appends &amp;amp;ping=1 to identify the cache name in debug messages (for gnutella and gnutella2 in 2.4.0.0, but only for gnutella2 now in 2.4.0.X for spec1 cache compatibility).&lt;br /&gt;
                + This feature new to Shareaza. &lt;br /&gt;
          o Network Variable&lt;br /&gt;
                + Appends &amp;amp;net=gnutella2 on Gnutella2 queries.&lt;br /&gt;
                + Does NOT append a network variable on Gnutella(1) queries. &lt;br /&gt;
          o Client Name / Version Format (2.4.0.0 and earlier):&lt;br /&gt;
                + &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) )&lt;br /&gt;
                + &amp;amp;version=(Shareaza&#039;s version) &lt;br /&gt;
          o Client Name / Version Format (2.4.0.X):&lt;br /&gt;
                + If Gnutella&lt;br /&gt;
                      # &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) )&lt;br /&gt;
                      # &amp;amp;version=(Shareaza&#039;s version) &lt;br /&gt;
                + If Gnutella2&lt;br /&gt;
                      # &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) )+(Shareaza&#039;s version) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* GWC Response Matching:&lt;br /&gt;
          o i|&lt;br /&gt;
                + Informational output alone will not be taken as GWC &#039;success.&#039; &lt;br /&gt;
          o i|access|period|(time in sec.)&lt;br /&gt;
                + Time in seconds before Shareaza is allowed to make a request to the cache. &lt;br /&gt;
          o i|update|period|(time in sec.)&lt;br /&gt;
                + Time in seconds before Shareaza is allowed to update to the cache. &lt;br /&gt;
          o i|force|remove and i|update|warning|bad url&lt;br /&gt;
                + Remove the GWC from the internal list. &lt;br /&gt;
          o Some Response Matches (added in 2.3.1.X)&lt;br /&gt;
                + i|NO-URL-NO-HOSTS&lt;br /&gt;
                      # Outputs warning of the cache being totally empty to the system log. &lt;br /&gt;
                + i|NO-URL&lt;br /&gt;
                      # Outputs warning of the cache having no alternative URLs to the system log. &lt;br /&gt;
                + i|NO-HOSTS&lt;br /&gt;
                      # Outputs warning of the cache having no hosts to the system log. &lt;br /&gt;
                + i|warning|&lt;br /&gt;
                      # Outputs warning of the cache to the system log. &lt;br /&gt;
                + ERROR Something Failed&lt;br /&gt;
                      # Outputs warning of the cache to the system log(Buggy Bazooka GWCs workaround). &lt;br /&gt;
                + i|warning|You came back too early (2.3.1.X)&lt;br /&gt;
                + i|warning|client|early (2.3.1.X)&lt;br /&gt;
                + WARNING: You came back too early (2.3.1.X)&lt;br /&gt;
                + ERROR: Client returned too early (2.3.1.X)&lt;br /&gt;
                      # Flood detection for the update side.&lt;br /&gt;
                      # Outputs GWebCache(update) Too many connection attempts to the system log. &lt;br /&gt;
                + too early (2.3.1.X)&lt;br /&gt;
                + early (2.4.0.X)&lt;br /&gt;
                      # Flood detection for the request side.&lt;br /&gt;
                      # Outputs GWebCache URL: Too many connection attempts to the system log. &lt;br /&gt;
                + i|update|OK&lt;br /&gt;
                      # Outputs &amp;quot;GWebCache(v2) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
                + OK&lt;br /&gt;
                      # Outputs &amp;quot;GWebCache(v1) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* GWC Response Matching:&lt;br /&gt;
          o i|&lt;br /&gt;
                + Informational output alone will not be taken as GWC &#039;success.&#039; &lt;br /&gt;
          o i|access|period|(time in sec.)&lt;br /&gt;
                + Time in seconds before Shareaza is allowed to make a request to the cache. &lt;br /&gt;
          o i|update|period|(time in sec.)&lt;br /&gt;
                + Time in seconds before Shareaza is allowed to update to the cache. &lt;br /&gt;
          o i|force|remove and i|update|warning|bad url&lt;br /&gt;
                + Remove the GWC from the internal list. &lt;br /&gt;
          o Some Response Matches (added in 2.3.1.X)&lt;br /&gt;
                + i|NO-URL-NO-HOSTS&lt;br /&gt;
                      # Outputs warning of the cache being totally empty to the system log. &lt;br /&gt;
                + i|NO-URL&lt;br /&gt;
                      # Outputs warning of the cache having no alternative URLs to the system log. &lt;br /&gt;
                + i|NO-HOSTS&lt;br /&gt;
                      # Outputs warning of the cache having no hosts to the system log. &lt;br /&gt;
                + i|warning|&lt;br /&gt;
                      # Outputs warning of the cache to the system log. &lt;br /&gt;
                + ERROR Something Failed&lt;br /&gt;
                      # Outputs warning of the cache to the system log(Buggy Bazooka GWCs workaround). &lt;br /&gt;
                + i|warning|You came back too early (2.3.1.X)&lt;br /&gt;
                + i|warning|client|early (2.3.1.X)&lt;br /&gt;
                + WARNING: You came back too early (2.3.1.X)&lt;br /&gt;
                + ERROR: Client returned too early (2.3.1.X)&lt;br /&gt;
                      # Flood detection for the update side.&lt;br /&gt;
                      # Outputs GWebCache(update) Too many connection attempts to the system log. &lt;br /&gt;
                + too early (2.3.1.X)&lt;br /&gt;
                + early (2.4.0.X)&lt;br /&gt;
                      # Flood detection for the request side.&lt;br /&gt;
                      # Outputs GWebCache URL: Too many connection attempts to the system log. &lt;br /&gt;
                + i|update|OK&lt;br /&gt;
                      # Outputs &amp;quot;GWebCache(v2) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
                + OK&lt;br /&gt;
                      # Outputs &amp;quot;GWebCache(v1) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Gnutella Web Cache Specifications==&lt;br /&gt;
&amp;lt;end of partial recovery by OCE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;end of recovered content&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;row recovery, start&amp;gt; &lt;br /&gt;
 Specification 1:&lt;br /&gt;
&lt;br /&gt;
    * Networks Served&lt;br /&gt;
          o Gnutella &lt;br /&gt;
    * Format&lt;br /&gt;
          o Update went fine:&lt;br /&gt;
                + Ex: OK &lt;br /&gt;
          o Update Warning (Small prob., not that bad):&lt;br /&gt;
                + Ex: &lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
WARNING: Error Message&lt;br /&gt;
&lt;br /&gt;
    * Severe Warning (No &#039;OK&#039; message sent)&lt;br /&gt;
          o Ex: &lt;br /&gt;
&lt;br /&gt;
WARNING: Error Message&lt;br /&gt;
&lt;br /&gt;
    * URL Output:&lt;br /&gt;
          o Ex: http://somefreakinrandomcache.com/cache/gcache.php&lt;br /&gt;
                + OR - WITH A PORT NUMBER (If not 80)&lt;br /&gt;
                      # Ex: http://somefreakinrandomcache.com:8080/cache/gcache.php &lt;br /&gt;
    * Host Output:&lt;br /&gt;
          o Ex: 66.132.55.12:6346 &lt;br /&gt;
    * Pong (ping variable response) - was explained below under the topic: variables.&lt;br /&gt;
    * Example Cache Output (Beacon Cache) For urlfile Command&lt;br /&gt;
          o Example &amp;quot;urlfile Output&amp;quot; URL: Ex: http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;urlfile=1&lt;br /&gt;
                + Example URL Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting urls with a pong combined&lt;br /&gt;
&lt;br /&gt;
PONG Beacon Cache 0.1.5D Beta&lt;br /&gt;
http://gwc.frodoslair.net/skulls/skulls.php&lt;br /&gt;
http://bbs.robertwoolley.co.uk/GWebCache/gcache.php&lt;br /&gt;
http://g2.tjtech.org/g2/&lt;br /&gt;
http://g2.tjtech.org/g2/index.php&lt;br /&gt;
http://gwc.monnsta.net/&lt;br /&gt;
http://holograph.uni.cc/other/skulls.php&lt;br /&gt;
http://gwc.nickstallman.net/&lt;br /&gt;
http://gwc.eod.cc/skulls.php&lt;br /&gt;
http://gwc.frodoslair.net/skulls/skulls&lt;br /&gt;
http://gwc.werwin.net/skulls.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * Example Cache Output (Beacon Cache) For hostfile Command&lt;br /&gt;
          o Example &amp;quot;hostfile Output&amp;quot; URL: Ex: http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;hostfile=1&lt;br /&gt;
                + Example Host Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting the hosts with a pong combined&lt;br /&gt;
&lt;br /&gt;
PONG Beacon Cache 0.1.5D Beta&lt;br /&gt;
71.8.84.153:3915&lt;br /&gt;
99.248.214.157:27529&lt;br /&gt;
69.60.241.55:16369&lt;br /&gt;
193.253.239.246:30218&lt;br /&gt;
68.156.175.121:6348&lt;br /&gt;
71.179.7.241:18344&lt;br /&gt;
74.196.22.241:6348&lt;br /&gt;
12.210.197.194:10531&lt;br /&gt;
222.150.143.77:10000&lt;br /&gt;
58.85.231.135:6346&lt;br /&gt;
24.141.199.164:20205&lt;br /&gt;
72.175.201.195:6348&lt;br /&gt;
69.81.129.228:4880&lt;br /&gt;
97.81.221.63:13219&lt;br /&gt;
70.15.130.224:7759&lt;br /&gt;
216.211.188.106:51903&lt;br /&gt;
75.167.168.156:48660&lt;br /&gt;
12.214.14.3:35916&lt;br /&gt;
76.177.244.106:24180&lt;br /&gt;
98.165.218.139:39630&lt;br /&gt;
68.112.182.125:3685&lt;br /&gt;
68.117.204.57:23482&lt;br /&gt;
65.12.154.25:40760&lt;br /&gt;
69.180.47.169:5711&lt;br /&gt;
75.138.40.173:24987&lt;br /&gt;
98.201.19.0:33662&lt;br /&gt;
70.187.2.144:6348&lt;br /&gt;
68.186.209.107:14429&lt;br /&gt;
69.159.7.61:6348&lt;br /&gt;
76.208.176.196:48199&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * For combining a hostfile and urlfile request:&lt;br /&gt;
          o Warning: This is non-standard.&lt;br /&gt;
          o Example Cache Output (Beacon Cache) For bfile Command&lt;br /&gt;
                + Example &amp;quot;bfile Output&amp;quot; URL: Ex: http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;bfile=1&lt;br /&gt;
                      # Example Host and URL Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting the hosts and urls with a pong combined&lt;br /&gt;
&lt;br /&gt;
PONG Beacon Cache 0.1.5D Beta&lt;br /&gt;
71.8.84.153:3915&lt;br /&gt;
99.248.214.157:27529&lt;br /&gt;
69.60.241.55:16369&lt;br /&gt;
193.253.239.246:30218&lt;br /&gt;
68.156.175.121:6348&lt;br /&gt;
71.179.7.241:18344&lt;br /&gt;
74.196.22.241:6348&lt;br /&gt;
12.210.197.194:10531&lt;br /&gt;
222.150.143.77:10000&lt;br /&gt;
58.85.231.135:6346&lt;br /&gt;
24.141.199.164:20205&lt;br /&gt;
72.175.201.195:6348&lt;br /&gt;
69.81.129.228:4880&lt;br /&gt;
97.81.221.63:13219&lt;br /&gt;
70.15.130.224:7759&lt;br /&gt;
216.211.188.106:51903&lt;br /&gt;
75.167.168.156:48660&lt;br /&gt;
12.214.14.3:35916&lt;br /&gt;
76.177.244.106:24180&lt;br /&gt;
98.165.218.139:39630&lt;br /&gt;
68.112.182.125:3685&lt;br /&gt;
68.117.204.57:23482&lt;br /&gt;
65.12.154.25:40760&lt;br /&gt;
69.180.47.169:5711&lt;br /&gt;
75.138.40.173:24987&lt;br /&gt;
98.201.19.0:33662&lt;br /&gt;
70.187.2.144:6348&lt;br /&gt;
68.186.209.107:14429&lt;br /&gt;
69.159.7.61:6348&lt;br /&gt;
76.208.176.196:48199&lt;br /&gt;
http://gwc.frodoslair.net/skulls/skulls.php&lt;br /&gt;
http://bbs.robertwoolley.co.uk/GWebCache/gcache.php&lt;br /&gt;
http://g2.tjtech.org/g2/&lt;br /&gt;
http://g2.tjtech.org/g2/index.php&lt;br /&gt;
http://gwc.monnsta.net/&lt;br /&gt;
http://holograph.uni.cc/other/skulls.php&lt;br /&gt;
http://gwc.nickstallman.net/&lt;br /&gt;
http://gwc.eod.cc/skulls.php&lt;br /&gt;
http://gwc.frodoslair.net/skulls/skulls&lt;br /&gt;
http://gwc.werwin.net/skulls.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * Variables&lt;br /&gt;
          o Mandatory&lt;br /&gt;
                + ping:&lt;br /&gt;
                      # Response should have this always: PONG&lt;br /&gt;
                      # After, put the cache&#039;s name. ex: PONG fakecache 0.01&lt;br /&gt;
                + client:&lt;br /&gt;
                      # Four letter code of the client. ex: RAZA &lt;br /&gt;
                + version:&lt;br /&gt;
                      # Version number of the client. &lt;br /&gt;
                + urlfile:&lt;br /&gt;
                      # Used by the client to request alternate cache urls. &lt;br /&gt;
                + hostfile:&lt;br /&gt;
                      # Used by the client to request IPs with port numbers attached. &lt;br /&gt;
                + url:&lt;br /&gt;
                      # Client update giving an alternate cache URL.&lt;br /&gt;
                      # Formatted with a http:// prefix to each cache. &lt;br /&gt;
                + ip:&lt;br /&gt;
                      # Client update giving one&#039;s IP to submit. &lt;br /&gt;
                + url1:&lt;br /&gt;
                      # OLD OUTDATED Client update giving an alternate cache URL.&lt;br /&gt;
                      # Formatted with a http:// prefix to each cache. &lt;br /&gt;
                + ip1:&lt;br /&gt;
                      # OLD OUTDATED Client update giving one&#039;s IP to submit. &lt;br /&gt;
          o Optional&lt;br /&gt;
                + bfile:&lt;br /&gt;
                      # For clients to request both URLs and IPs from the cache at the same time. &lt;br /&gt;
                + statfile:&lt;br /&gt;
                      # Statistics of the cache request:&lt;br /&gt;
                            * First line: Total requests of the cache number.&lt;br /&gt;
                            * Second line: Requests of the cache an hour number.&lt;br /&gt;
                            * Third line: Updates of the cache an hour number. &lt;br /&gt;
&lt;br /&gt;
Specification 2:&lt;br /&gt;
&lt;br /&gt;
    * Networks Served&lt;br /&gt;
          o Gnutella, Gnutella2, etc. &lt;br /&gt;
    * Format&lt;br /&gt;
          o Information Output&lt;br /&gt;
                + Starts with: I|&lt;br /&gt;
                      # Categories&lt;br /&gt;
                            * Pong (ping variable response) - Described below under the topic: variables.&lt;br /&gt;
                            * Update Status Response&lt;br /&gt;
                                  o Format: I|update&lt;br /&gt;
                                  o Responses&lt;br /&gt;
                                        + I|update|OK&lt;br /&gt;
                                              # - Everything went fine. &lt;br /&gt;
                                        + I|update|OK|WARNING&lt;br /&gt;
                                              # Small warning. &lt;br /&gt;
                                        + I|update|WARNING&lt;br /&gt;
                                              # Severe warning &lt;br /&gt;
                            * Plain Warnings&lt;br /&gt;
                                  o Format: I|WARNING&lt;br /&gt;
                                        + Append any warning messages after it - Ex: I|WARNING|You came back too early &lt;br /&gt;
                            * Extra Info - Described below under the topic: variables. &lt;br /&gt;
          o Host Output&lt;br /&gt;
                + Starts with: H|&lt;br /&gt;
                + Add the IP with its port:&lt;br /&gt;
                      # Ex: H|0.0.0.0:6346 &lt;br /&gt;
                + Add the time, thereafter, of the host&#039;s (In seconds*) time in cache:&lt;br /&gt;
                      # Ex: H|0.0.0.0:6346|45 &lt;br /&gt;
                + If cluster exists with cluster=somerandomwords&lt;br /&gt;
                      # Add the clustered words after the host&#039;s age:&lt;br /&gt;
                            * Ex: H|0.0.0.0:6346|45|somerandomwords &lt;br /&gt;
          o URL Output&lt;br /&gt;
                + Starts with: U|&lt;br /&gt;
                + Add the URL with http:// before it, plus the port (if it&#039;s not 80).&lt;br /&gt;
                      # Ex: U|http://somerandomcache.com/ &lt;br /&gt;
                + Add the time, thereafter, of the URL&#039;s time (In seconds*) in cache:&lt;br /&gt;
                      # Ex: U|http://somerandomcache.com/|45 &lt;br /&gt;
          o Example Cache Output (Beacon Cache) For get Command&lt;br /&gt;
                + Example URL: http://grantgalitz.com/Beacon/gwc.php?get=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;net=gnutella2&amp;amp;ping=1&lt;br /&gt;
                      # Example &amp;quot;Get&amp;quot; Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting the hosts and urls with a pong combined&lt;br /&gt;
&lt;br /&gt;
I|pong|Beacon Cache 0.1.5D Beta|gnutella-gnutella2&lt;br /&gt;
H|65.9.200.243:4968|248261&lt;br /&gt;
H|68.228.129.75:44599|242678&lt;br /&gt;
H|98.240.196.122:8206|240719&lt;br /&gt;
H|76.104.12.133:14921|218273&lt;br /&gt;
H|69.136.1.12:3924|211610&lt;br /&gt;
H|81.154.208.71:8595|174402&lt;br /&gt;
H|97.96.105.51:2076|153610&lt;br /&gt;
H|74.192.153.212:39340|144203&lt;br /&gt;
H|72.190.106.57:12584|132984&lt;br /&gt;
H|78.93.71.132:12334|125668&lt;br /&gt;
H|82.43.248.184:27560|97974&lt;br /&gt;
H|196.205.224.97:6357|86763&lt;br /&gt;
H|74.129.219.30:33172|82005&lt;br /&gt;
H|76.104.12.133:19185|57182&lt;br /&gt;
H|69.59.83.131:18442|38628&lt;br /&gt;
U|http://www.k33bz.com/g2/bazooka.php|248639&lt;br /&gt;
U|http://gwebcache.ns1.net/|248592&lt;br /&gt;
U|http://gwc2.wodi.org/skulls.php|248384&lt;br /&gt;
U|http://gwc.guufshop.com/skulls/skulls.php|248322&lt;br /&gt;
U|http://groovy.syxy.com/up/skulls.php|248300&lt;br /&gt;
U|http://g2.tjtech.org/g2/index.php|247770&lt;br /&gt;
U|http://midian.jayl.de/g2/bazooka.php|240719&lt;br /&gt;
U|http://www.dom2porno.info/skulls/skulls.php|207473&lt;br /&gt;
U|http://gwc.frodoslair.net/skulls/skulls|125668&lt;br /&gt;
U|http://holograph.uni.cc/other/skulls.php|9642&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * Variables&lt;br /&gt;
          o Mandatory&lt;br /&gt;
                + ping:&lt;br /&gt;
                      # Main Part: I|pong|&lt;br /&gt;
                      # Then add the cache name and version: I|pong|fakecache 0.01&lt;br /&gt;
                      # Then lastly add the network support:&lt;br /&gt;
                            * I|pong|fakecache 0.01|gnutella&lt;br /&gt;
                                  o - Gnutella only &lt;br /&gt;
                            * I|pong|fakecache 0.01|gnutella2&lt;br /&gt;
                                  o - Gnutella2 only &lt;br /&gt;
                            * I|pong|fakecache 0.01|gnutella-gnutella2&lt;br /&gt;
                                  o - Gnutella and Gnutella2 served &lt;br /&gt;
                + get:&lt;br /&gt;
                      # Used by clients to requests alternate cache URLs along with IPs and their port numbers. &lt;br /&gt;
                + update:&lt;br /&gt;
                      # url:&lt;br /&gt;
                            * Client update giving an alternate cache URL.&lt;br /&gt;
                            * Formatted with a http:// prefix to each cache. &lt;br /&gt;
                      # ip:&lt;br /&gt;
                            * Client update giving one&#039;s IP to submit. &lt;br /&gt;
                + net:&lt;br /&gt;
                      # Which network to serve the client.&lt;br /&gt;
                            * Gnutella&lt;br /&gt;
                                  o Ex: net=gnutella &lt;br /&gt;
                            * Gnutella2&lt;br /&gt;
                                  o Ex: net=gnutella2 &lt;br /&gt;
                            * Should always be lowercase&lt;br /&gt;
                                  o GWCs should automatically convert network name given to lowercase to prevent Net ID mismatches &lt;br /&gt;
&lt;br /&gt;
solely on case alone.&lt;br /&gt;
&lt;br /&gt;
    *&lt;br /&gt;
          o&lt;br /&gt;
                + client:&lt;br /&gt;
                      # Four letter code of the client. ex: RAZA &lt;br /&gt;
                + version:&lt;br /&gt;
                      # Version number of the client. &lt;br /&gt;
          o Optional&lt;br /&gt;
                + cluster:&lt;br /&gt;
                      # To add extra info to an IP update.&lt;br /&gt;
                            * Output by cache: H|0.0.0.0|AGE OF HOST (Seconds)|clustering some bull**** &lt;br /&gt;
                + statfile:&lt;br /&gt;
                      # Exactly like the specification 1 statfile (Same routine and output style).&lt;br /&gt;
                      # Statistics of the cache request:&lt;br /&gt;
                            * First line: Total requests of the cache number.&lt;br /&gt;
                            * Second line: Requests of the cache an hour number.&lt;br /&gt;
                            * Third line: Updates of the cache an hour number. &lt;br /&gt;
&lt;br /&gt;
Specification 2.1&lt;br /&gt;
&lt;br /&gt;
    * This is an extension of specification 2, not a separate specification!&lt;br /&gt;
    * Pong extension&lt;br /&gt;
          o Append the networks supported joined by a hyphen &#039;-&#039;.&lt;br /&gt;
          o Used for client-side validation of networks supported and for network support reporting to other web caches.&lt;br /&gt;
          o Format:&lt;br /&gt;
                + I|pong|cache name|network names joined by &#039;-&#039;&lt;br /&gt;
                + Format Examples:&lt;br /&gt;
                      # I|pong|fakecache 0.01|gnutella&lt;br /&gt;
                            * - Gnutella only &lt;br /&gt;
                      # I|pong|fakecache 0.01|gnutella2&lt;br /&gt;
                            * - Gnutella2 only &lt;br /&gt;
                      # I|pong|fakecache 0.01|gnutella-gnutella2&lt;br /&gt;
                            * - Gnutella and Gnutella2 served &lt;br /&gt;
    * Host Output&lt;br /&gt;
          o Just like specification 2, but with more fields supported for host output.&lt;br /&gt;
                + H|ip:port|age in cache|clustering|leaves|4 letter vendor code|reported uptime of host|max. leaves possible&lt;br /&gt;
                      # The host, age, and clustering fields are all still the same as in specification 2.&lt;br /&gt;
                      # The leaf count of the hub reported is in the 5th field.&lt;br /&gt;
                      # The vendor code with version number is in the 6th field. &lt;br /&gt;
    * Request Control Variables:&lt;br /&gt;
          o getleaves&lt;br /&gt;
                + Used to obtain leaf counts of hubs given&lt;br /&gt;
                + 4th field ultilized for current leaf count.&lt;br /&gt;
                + 7th field ultilized for maximum leaf slots possible.&lt;br /&gt;
                + Use this as &#039;getleaves=1&#039; or &#039;getleaves&#039; to enable. &lt;br /&gt;
          o getclusters&lt;br /&gt;
                + Enables/Disables clustering.&lt;br /&gt;
                + Use this as &#039;getclusters=1&#039;.&lt;br /&gt;
                + Using &#039;getclusters&#039; or &#039;getclusters=0&#039; disables cluster output. &lt;br /&gt;
          o getvendors&lt;br /&gt;
                + Used to obtain the vendor code w/ version number of the hubs given.&lt;br /&gt;
                + Found in the 5th field.&lt;br /&gt;
                + Use this as &#039;getvendors=1&#039; or &#039;getvendors&#039; to enable. &lt;br /&gt;
          o getuptime&lt;br /&gt;
                + Used to obtain the vendor code w/ version number of the hubs given.&lt;br /&gt;
                + Value is static, do not change the value given when time passes.&lt;br /&gt;
                + Found in the 6th field.&lt;br /&gt;
                + Use this as &#039;getuptime=1&#039; or &#039;getuptime&#039; to enable. &lt;br /&gt;
          o spec&lt;br /&gt;
                + To force the specification parameter&lt;br /&gt;
                + Currently is only supported by Beacon Cache II &lt;br /&gt;
          o pv&lt;br /&gt;
                + Similar to the &#039;spec&#039; parameter, except that it does not force, instead it simply negotiates the specification. &lt;br /&gt;
    * Special Data Requests&lt;br /&gt;
          o info&lt;br /&gt;
                + Outputs extra details of your cache.&lt;br /&gt;
                      # Start with the informational response: I|&lt;br /&gt;
                            * Ex: I|open-source|1 &lt;br /&gt;
          o support&lt;br /&gt;
                + Outputs USEFUL details of your cache.&lt;br /&gt;
                      # Start with the informational response: I|&lt;br /&gt;
                            * Ex: I|support|gnutella2 &lt;br /&gt;
          o getnetworks&lt;br /&gt;
                + Outputs the enabled networks in two formats.&lt;br /&gt;
                      # Start with the informational response: I|&lt;br /&gt;
                            * For the &#039;I|nets|&#039; line&lt;br /&gt;
                                  o The third field contains the supported networks joined by &#039;-&#039;. &lt;br /&gt;
                            * For the &#039;I|networks|&#039; line&lt;br /&gt;
                                  o Interpret the fields from 3 and beyond as individual network names to challenge against. &lt;br /&gt;
                      # Examples&lt;br /&gt;
                            *&lt;br /&gt;
                                  o I|nets|gnutella-gnutella2&lt;br /&gt;
                                  o I|networks|gnutella|gnutella2 &lt;br /&gt;
    * Update Extension Variables:&lt;br /&gt;
          o x_leaves&lt;br /&gt;
                + Number of leaves running on a given hub or ultrapeer.&lt;br /&gt;
                + Value must not be greater than an integer value of 2047.&lt;br /&gt;
                + Note: It is important to know that PHP automaticaly replace dots with underscores, so to keep compatibility with old/new version of clients all caches should support both variants, example: x.leaves x_leaves&lt;br /&gt;
          o x_max&lt;br /&gt;
                + Maximum number of leaves possible on a given hub or ultrapeer.&lt;br /&gt;
                + Value must not be greater than an integer value of 2047. &lt;br /&gt;
          o uptime&lt;br /&gt;
                + Value submitted must be an integer value of the number of seconds of uptime.&lt;br /&gt;
                + Value must not be greater than an integer value of 1 year (31536000) and less than 1 hour (60). &lt;br /&gt;
&lt;br /&gt;
Pinging Caches With Your Cache&lt;br /&gt;
&lt;br /&gt;
    * Please follow this standard:&lt;br /&gt;
          o Client: TEST&lt;br /&gt;
          o Version: Your Cache&#039;s Name&lt;br /&gt;
                + The old value for &amp;quot;version&amp;quot; was 1 &lt;br /&gt;
    * Some variables to attach to the ping (compatibility):&lt;br /&gt;
          o multi&lt;br /&gt;
                + Used by some gwcs in their pings to other gwcs.&lt;br /&gt;
                + It tells the pinged cache to ignore the &amp;quot;net&amp;quot; parameter (so it should never say network not supported) and outputting the pong using this format, if possible, &amp;quot;I|pong|[cache name] [cache version]|[supported networks list]|[url adding is enabled]&amp;quot; - example: I|pong|Skulls 0.2.8a|gnutella-gnutella2|1&lt;br /&gt;
                + Used by Skulls GWC only. &lt;br /&gt;
          o cache&lt;br /&gt;
                + This is added to every request made by some gwcs, it is for statistical purposes only.&lt;br /&gt;
                + It simply tells the remote cache that the client is a GWC. &lt;br /&gt;
    * Help&lt;br /&gt;
          o For PHP&lt;br /&gt;
                + Use the fsockopen() function to open a connection to a cache.&lt;br /&gt;
                      # Make sure you &amp;quot;write&amp;quot; to the fsockopen carry value to open the GWC&#039;s target file.&lt;br /&gt;
                            * http://us.php.net/manual/en/function.fsockopen.php &lt;br /&gt;
&lt;br /&gt;
Variable Combination Standards&lt;br /&gt;
&lt;br /&gt;
    * Net variable decides specification!&lt;br /&gt;
          o There are many ways to determine spec., but going with net is the safe way.&lt;br /&gt;
          o Skulls GWC does not use the network parameter to determine specification level.&lt;br /&gt;
          o Beacon Cache (I and II) uses the network parameter to determine the specification level. &lt;br /&gt;
    * Your cache needs to be able to process certain combinations of variables.&lt;br /&gt;
          o Update variable&lt;br /&gt;
                + Update should not fail if absent if spec. 2.&lt;br /&gt;
                      # A Specification 2 parameter. &lt;br /&gt;
    * Spec 1 parameters used in Spec 2:&lt;br /&gt;
          o Should still accept hostfile and urlfile responses for spec. 2.&lt;br /&gt;
                + Beacon Cache (I and II) accepts these parameters on spec 2. &lt;br /&gt;
    * The &#039;spec&#039; paameter can be used to force a specification:&lt;br /&gt;
          o Only known to exist in Beacon Cache II, it can force the request to be handled as a specification 1 or 2 request.&lt;br /&gt;
          o Spec 1 = &#039;spec=1&#039;&lt;br /&gt;
          o Spec 2 = &#039;spec=2&#039;&lt;br /&gt;
          o If &#039;spec&#039; is not equal to any current spec, then default to the predetermined spec. &lt;br /&gt;
    * Multiple variable requests&lt;br /&gt;
          o If for instance a ping and request exist, you should always handle them properly.&lt;br /&gt;
                + Same goes with other combos like an update and ping, statfile + ping and info. &lt;br /&gt;
          o Handle multiple variables as BEST as possible!&lt;br /&gt;
                + Some scanners and GWCs like to fit all their requests into one URL send. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;row recovery, end&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Further Information:&lt;br /&gt;
&lt;br /&gt;
* [http://www.gnucleus.com/gwebcache/ Original GWC site]&lt;br /&gt;
** [http://gnucleus.sourceforge.net/gwebcache/specs.html GWC Spec. 1]&lt;br /&gt;
** [http://gnucleus.sourceforge.net/gwebcache/newgwc.html GWC Spec. 2] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;content recovered from last aviable backup&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Gnutella Web Cache===&lt;br /&gt;
Gnutella requires Gnutella Web Caches (GWC) to get IPs to establish a connection to the network.  These are critical to ensuring the health of the network.  If you have a dedicated server and can spare some extra bandwidth then please consider running a GWC.  People that don&#039;t have a dedicated server or are on normal broadband consumer lines should not run a cache from home.&lt;br /&gt;
&lt;br /&gt;
A GWC is a simple script that can be put on any webserver that supports one of the following scripting languages:&lt;br /&gt;
*JSP (Java Servlet)&lt;br /&gt;
**[http://web.archive.org/web/20061108091447/http://www.mager.org/GWebCache/ Java Servlet GWebCache Application (Archive.org)]&lt;br /&gt;
*C&lt;br /&gt;
**[http://ghostwhitecrab.com/crab/ GhostWhiteCrab]&lt;br /&gt;
*Perl &lt;br /&gt;
**[http://www.jonatkins.com/perlgcache/ Jon Atkins&#039; perlgcache] &lt;br /&gt;
**The original [http://www.gnucleus.com/gwebcache/dist/ GnuWebCache]&lt;br /&gt;
*PHP &lt;br /&gt;
**[http://gwcii.sourceforge.net/ PHPGnuCacheII] - MySQL&lt;br /&gt;
**[http://www.bazookanetworks.com Bazooka G2WC] (recommended) - flat files&lt;br /&gt;
**[http://sourceforge.net/projects/skulls/ Skulls! Multi-Network WebCache] - flat files&lt;br /&gt;
=== Further Information: ===&lt;br /&gt;
* [http://www.gnucleus.com/gwebcache/ Original GWC site]&lt;br /&gt;
&lt;br /&gt;
[[Category:External Links]]&lt;/div&gt;</summary>
		<author><name>Ale5000</name></author>
	</entry>
	<entry>
		<id>https://shareaza.sourceforge.net/w/index.php?title=GWC_specs&amp;diff=11504</id>
		<title>GWC specs</title>
		<link rel="alternate" type="text/html" href="https://shareaza.sourceforge.net/w/index.php?title=GWC_specs&amp;diff=11504"/>
		<updated>2015-03-25T12:32:31Z</updated>

		<summary type="html">&lt;p&gt;Ale5000: Corrected wrong examples&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;For general information on GWCs, have a look at the [[GWC]] Wiki page.&#039;&#039;&lt;br /&gt;
{{do not translate}}&lt;br /&gt;
This page is thought to give an overview over the GWC specifications as they are implemented into Shareaza.&lt;br /&gt;
&lt;br /&gt;
A GWC is a simple script that can be put on any webserver that supports one of the following scripting languages: &lt;br /&gt;
&lt;br /&gt;
* JSP (Java Servlet) &lt;br /&gt;
** [http://www1.mager.org/GWebCache/ Jums Web Cache] (Excellent for heavy loads) &lt;br /&gt;
* C &lt;br /&gt;
** [http://wiki.limewire.org/index.php?title=GhostWhiteCrab GhostWhiteCrab] (For dedicated server environments and people who know how to compile C source code!) &lt;br /&gt;
* ASP &lt;br /&gt;
** [http://www.edazzle.net/downloads/gerry.zip Gerry GWC] &lt;br /&gt;
** [https://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=7846&amp;amp;lngWId=4 Lynn (v.s. 0.5)] &lt;br /&gt;
** [https://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=7731&amp;amp;lngWId=4 Lynn (v.s. 0.4)] &lt;br /&gt;
** [http://www.poundwebhosting.com/cgi-bin/lynnx.asp LynnX] &lt;br /&gt;
* Perl &lt;br /&gt;
** [http://www.jonatkins.com/perlgcache/ Jon Atkins&#039; perlgcache] &lt;br /&gt;
** The original [http://www.gnucleus.com/gwebcache/dist/ GnuWebCache] &lt;br /&gt;
&#039;&#039;&#039;PHP&#039;&#039;&#039; &#039;&#039;(Tip: PHP GWCs are usually the easiest to run and setup on a server.)&#039;&#039;&lt;br /&gt;
** [http://gwcii.sourceforge.net/ PHPGnuCacheII] &lt;br /&gt;
** [http://www.bazookanetworks.com/ Bazooka G2WC] &lt;br /&gt;
* The original [http://www.gnucleus.com/gwebcache/dist/ GnuWebCache] &#039;&#039;(PHP version is no longer supported)&#039;&#039; &lt;br /&gt;
** [http://sourceforge.net/projects/skulls/ Skulls! Multi-Network WebCache] &lt;br /&gt;
** [http://sourceforge.net/projects/beaconcache/ Beacon Cache] &lt;br /&gt;
** [http://code.google.com/p/cachechu/ Cachechu G2WC] &lt;br /&gt;
&lt;br /&gt;
== Breakdown Of The Gnutella Web Caches: == &lt;br /&gt;
{{RecoveredPage|I recently put this into a table. The contents need to be verified -- [[User:Cyko 01|Cyko 01]]}}&lt;br /&gt;
&lt;br /&gt;
{| width= auto; style=&amp;quot;font-size: 85%; text-align: center;text-valign: middle;&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Cache:&lt;br /&gt;
! rowspan=1 |Gnutella:&lt;br /&gt;
! rowspan=1 |Gnutella2:&lt;br /&gt;
! rowspan=1 |Spec 1:&lt;br /&gt;
! rowspan=1 |Spec 2:&lt;br /&gt;
! rowspan=1 |Flat-File:&lt;br /&gt;
! rowspan=1 |SQL:&lt;br /&gt;
! rowspan=1 |Installer:&lt;br /&gt;
! rowspan=1 |Other Networks:&lt;br /&gt;
! rowspan=1 |Different network instances:&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Beacon Cache (Core 2)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|style=&amp;quot;background: #CCFFCC;&amp;quot;| Yes (As of 0.2.0 Alpha)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Beacon Cache (Core 1)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Skulls&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|JumsWebCache&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|GnuWebCache (Perl)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|GnuWebCache (PHP) &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|GhostWhiteCrab(GWC) &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|style=&amp;quot;background: #FFFFCC;&amp;quot;| N/A&lt;br /&gt;
|style=&amp;quot;background: #FFFFCC;&amp;quot;| N/A&lt;br /&gt;
|style=&amp;quot;background: #FFFFCC;&amp;quot;| N/A&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|PHPGnuCacheII &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Bazooka &lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Cachechu&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Perlgcache&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Gerry GWC (v2)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Gerry GWC (v1)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Lynn&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|LynnX&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Shareaza Specific Details == &lt;br /&gt;
&lt;br /&gt;
{{RecoveredPage|Warninig: here I have pasted better formatted recovery, but not verified. Row recovery has been mooved below as I don&#039;t know if anybody has made any changes in it. If not then row recovery can be deleted. Paste starts from &amp;gt;&amp;gt;Shareaza Specific Details&amp;lt;&amp;lt;, here, and ends at second &amp;gt;&amp;gt;Shareaza Specific Details&amp;lt;&amp;lt; I hope it is visible.  --[[User:Ocexyz|Ocexyz]] 23:27, 27 July 2009 (UTC)}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Get String Breakdown:&#039;&#039;&#039; &lt;br /&gt;
* Update a leaf &lt;br /&gt;
** &amp;quot;?update=1&amp;amp;ip=(ip):(port)&amp;amp;x_leaves=(leaf count) &lt;br /&gt;
* Ping Variable &lt;br /&gt;
** Appends &amp;amp;ping=1 to identify the cache name in debug messages (for gnutella and gnutella2 in 2.4.0.0, but only for gnutella2 now in 2.4.0.X for spec1 cache compatibility). &lt;br /&gt;
** This feature new to Shareaza. &lt;br /&gt;
* Network Variable &lt;br /&gt;
** Appends &amp;amp;net=gnutella2 on Gnutella2 queries. &lt;br /&gt;
** Does NOT append a network variable on Gnutella(1) queries. &lt;br /&gt;
* Client Name / Version Format (2.4.0.0 and earlier): &lt;br /&gt;
** &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) ) &lt;br /&gt;
** &amp;amp;version=(Shareaza&#039;s version) &lt;br /&gt;
* Client Name / Version Format (2.4.0.X): &lt;br /&gt;
** If Gnutella &lt;br /&gt;
*** &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) ) &lt;br /&gt;
*** &amp;amp;version=(Shareaza&#039;s version) &lt;br /&gt;
** If Gnutella2 &lt;br /&gt;
*** &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) )+(Shareaza&#039;s version) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GWC Response Matching:&#039;&#039;&#039; &lt;br /&gt;
* i| &lt;br /&gt;
** Informational output alone will not be taken as GWC &#039;success.&#039; &lt;br /&gt;
* i|access|period|(time in sec.) &lt;br /&gt;
** Time in seconds before Shareaza is allowed to make a request to the cache. &lt;br /&gt;
* i|update|period|(time in sec.) &lt;br /&gt;
** Time in seconds before Shareaza is allowed to update to the cache. &lt;br /&gt;
* i|force|remove and i|update|warning|bad url &lt;br /&gt;
** Remove the GWC from the internal list. &lt;br /&gt;
* Some Response Matches (added in 2.3.1.X) &lt;br /&gt;
** i|NO-URL-NO-HOSTS &lt;br /&gt;
*** Outputs warning of the cache being totally empty to the system log. &lt;br /&gt;
** i|NO-URL &lt;br /&gt;
*** Outputs warning of the cache having no alternative URLs to the system log. &lt;br /&gt;
** i|NO-HOSTS &lt;br /&gt;
*** Outputs warning of the cache having no hosts to the system log. &lt;br /&gt;
** i|warning| &lt;br /&gt;
*** Outputs warning of the cache to the system log. &lt;br /&gt;
** ERROR Something Failed &lt;br /&gt;
*** Outputs warning of the cache to the system log(Buggy Bazooka GWCs workaround). &lt;br /&gt;
** i|warning|You came back too early (2.3.1.X) &lt;br /&gt;
** i|warning|client|early (2.3.1.X) &lt;br /&gt;
** WARNING: You came back too early (2.3.1.X) &lt;br /&gt;
** ERROR: Client returned too early (2.3.1.X) &lt;br /&gt;
*** Flood detection for the update side. &lt;br /&gt;
*** Outputs GWebCache(update) Too many connection attempts to the system log. &lt;br /&gt;
** too early (2.3.1.X) &lt;br /&gt;
** early (2.4.0.X) &lt;br /&gt;
*** Flood detection for the request side. &lt;br /&gt;
*** Outputs GWebCache URL: Too many connection attempts to the system log. &lt;br /&gt;
** i|update|OK &lt;br /&gt;
*** Outputs &amp;quot;GWebCache(v2) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
** OK &lt;br /&gt;
*** Outputs &amp;quot;GWebCache(v1) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
&lt;br /&gt;
== Gnutella Web Cache Specifications ==&lt;br /&gt;
==== Specification 1: ====&lt;br /&gt;
* &#039;&#039;&#039;Networks Served&#039;&#039;&#039; &lt;br /&gt;
** Gnutella &lt;br /&gt;
* &#039;&#039;&#039;Format&#039;&#039;&#039; &lt;br /&gt;
** Update went fine: &lt;br /&gt;
*** Ex: OK &lt;br /&gt;
** Update Warning (Small prob., not that bad): &lt;br /&gt;
*** Ex: OKWARNING: Error Message &lt;br /&gt;
&lt;br /&gt;
* Severe Warning (No &#039;OK&#039; message sent) &lt;br /&gt;
** Ex: WARNING: Error Message&lt;br /&gt;
&lt;br /&gt;
* URL Output: &lt;br /&gt;
** Ex: [http://somefreakinrandomcache.com/cache/gcache.php http://somefreakinrandomcache.com/cache/gcache.php] &lt;br /&gt;
*** OR - WITH A PORT NUMBER (If not 80) &lt;br /&gt;
**** Ex: [http://somefreakinrandomcache.com:8080/cache/gcache.php http://somefreakinrandomcache.com:8080/cache/gcache.php] &lt;br /&gt;
* Host Output: &lt;br /&gt;
** Ex: 66.132.55.12:6346 &lt;br /&gt;
* Pong (ping variable response) - was explained below under the topic: variables. &lt;br /&gt;
* &#039;&#039;&#039;Example Cache Output (Beacon Cache) For urlfile Command&#039;&#039;&#039; &lt;br /&gt;
** Example &amp;quot;urlfile Output&amp;quot; URL: Ex: [http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;urlfile=1 http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;urlfile=1] &lt;br /&gt;
*** Example URL Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Getting urls with a pong combined&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| PONG Beacon Cache 0.1.5D Beta[http://gwc.frodoslair.net/skulls/skulls.php http://gwc.frodoslair.net/skulls/skulls.php][http://bbs.robertwoolley.co.uk/GWebCache/gcache.php http://bbs.robertwoolley.co.uk/GWebCache/gcache.php][http://g2.tjtech.org/g2/ http://g2.tjtech.org/g2/][http://g2.tjtech.org/g2/index.php http://g2.tjtech.org/g2/index.php][http://gwc.monnsta.net/ http://gwc.monnsta.net/][http://holograph.uni.cc/other/skulls.php http://holograph.uni.cc/other/skulls.php][http://gwc.nickstallman.net/ http://gwc.nickstallman.net/][http://gwc.eod.cc/skulls.php http://gwc.eod.cc/skulls.php][http://gwc.frodoslair.net/skulls/skulls http://gwc.frodoslair.net/skulls/skulls][http://gwc.werwin.net/skulls.php http://gwc.werwin.net/skulls.php] &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
* &#039;&#039;&#039;Example Cache Output (Beacon Cache) For hostfile Command&#039;&#039;&#039; &lt;br /&gt;
** Example &amp;quot;hostfile Output&amp;quot; URL: Ex: [http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;hostfile=1 http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;hostfile=1] &lt;br /&gt;
*** Example Host Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Getting the hosts with a pong combined&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| PONG Beacon Cache 0.1.5D Beta71.8.84.153:391599.248.214.157:2752969.60.241.55:16369193.253.239.246:3021868.156.175.121:634871.179.7.241:1834474.196.22.241:634812.210.197.194:10531222.150.143.77:1000058.85.231.135:634624.141.199.164:2020572.175.201.195:634869.81.129.228:488097.81.221.63:1321970.15.130.224:7759216.211.188.106:5190375.167.168.156:4866012.214.14.3:3591676.177.244.106:2418098.165.218.139:3963068.112.182.125:368568.117.204.57:2348265.12.154.25:4076069.180.47.169:571175.138.40.173:2498798.201.19.0:3366270.187.2.144:634868.186.209.107:1442969.159.7.61:634876.208.176.196:48199&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
* &#039;&#039;&#039;For combining a hostfile and urlfile request:&#039;&#039;&#039; &lt;br /&gt;
** Warning: This is non-standard. &lt;br /&gt;
** &#039;&#039;&#039;Example Cache Output (Beacon Cache) For bfile Command&#039;&#039;&#039; &lt;br /&gt;
*** Example &amp;quot;bfile Output&amp;quot; URL: Ex: [http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;bfile=1 http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;bfile=1] &lt;br /&gt;
**** Example Host and URL Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Getting the hosts and urls with a pong combined&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| PONG Beacon Cache 0.1.5D Beta71.8.84.153:391599.248.214.157:2752969.60.241.55:16369193.253.239.246:3021868.156.175.121:634871.179.7.241:1834474.196.22.241:634812.210.197.194:10531222.150.143.77:1000058.85.231.135:634624.141.199.164:2020572.175.201.195:634869.81.129.228:488097.81.221.63:1321970.15.130.224:7759216.211.188.106:5190375.167.168.156:4866012.214.14.3:3591676.177.244.106:2418098.165.218.139:3963068.112.182.125:368568.117.204.57:2348265.12.154.25:4076069.180.47.169:571175.138.40.173:2498798.201.19.0:3366270.187.2.144:634868.186.209.107:1442969.159.7.61:634876.208.176.196:48199[http://gwc.frodoslair.net/skulls/skulls.php http://gwc.frodoslair.net/skulls/skulls.php][http://bbs.robertwoolley.co.uk/GWebCache/gcache.php http://bbs.robertwoolley.co.uk/GWebCache/gcache.php][http://g2.tjtech.org/g2/ http://g2.tjtech.org/g2/][http://g2.tjtech.org/g2/index.php http://g2.tjtech.org/g2/index.php][http://gwc.monnsta.net/ http://gwc.monnsta.net/][http://holograph.uni.cc/other/skulls.php http://holograph.uni.cc/other/skulls.php][http://gwc.nickstallman.net/ http://gwc.nickstallman.net/][http://gwc.eod.cc/skulls.php http://gwc.eod.cc/skulls.php][http://gwc.frodoslair.net/skulls/skulls http://gwc.frodoslair.net/skulls/skulls][http://gwc.werwin.net/skulls.php http://gwc.werwin.net/skulls.php] &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Variables&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Mandatory&#039;&#039;&#039; &lt;br /&gt;
** ping: &lt;br /&gt;
*** Response should have this always: PONG&lt;br /&gt;
*** After, put the cache&#039;s name. ex: PONG fakecache 0.01&lt;br /&gt;
** client: &lt;br /&gt;
*** Four letter code of the client. ex: RAZA &lt;br /&gt;
** version: &lt;br /&gt;
*** Version number of the client. &lt;br /&gt;
** urlfile: &lt;br /&gt;
*** Used by the client to request alternate cache urls. &lt;br /&gt;
** hostfile: &lt;br /&gt;
*** Used by the client to request IPs with port numbers attached. &lt;br /&gt;
** url: &lt;br /&gt;
*** Client update giving an alternate cache URL. &lt;br /&gt;
*** Formatted with a http:// prefix to each cache. &lt;br /&gt;
** ip: &lt;br /&gt;
*** Client update giving one&#039;s IP to submit. &lt;br /&gt;
** url1: &lt;br /&gt;
*** OLD OUTDATED Client update giving an alternate cache URL. &lt;br /&gt;
*** Formatted with a http:// prefix to each cache. &lt;br /&gt;
** ip1: &lt;br /&gt;
*** OLD OUTDATED Client update giving one&#039;s IP to submit. &lt;br /&gt;
* &#039;&#039;&#039;Optional&#039;&#039;&#039; &lt;br /&gt;
** bfile: &lt;br /&gt;
*** For clients to request both URLs and IPs from the cache at the same time. &lt;br /&gt;
** statfile: &lt;br /&gt;
*** Statistics of the cache request: &lt;br /&gt;
**** First line: Total requests of the cache number. &lt;br /&gt;
**** Second line: Requests of the cache an hour number. &lt;br /&gt;
**** Third line: Updates of the cache an hour number.&lt;br /&gt;
&lt;br /&gt;
==== Specification 2: ====&lt;br /&gt;
&#039;&#039;&#039;Networks Served&#039;&#039;&#039; &lt;br /&gt;
* Gnutella, Gnutella2, etc. &lt;br /&gt;
&#039;&#039;&#039;Format&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Information Output&#039;&#039;&#039; &lt;br /&gt;
** Starts with: I| &lt;br /&gt;
*** &#039;&#039;&#039;Categories&#039;&#039;&#039; &lt;br /&gt;
**** &#039;&#039;&#039;Pong&#039;&#039;&#039; (ping variable response) - Described below under the topic: variables. &lt;br /&gt;
**** &#039;&#039;&#039;Update Status Response&#039;&#039;&#039; &lt;br /&gt;
***** Format: I|update &lt;br /&gt;
***** &#039;&#039;&#039;Responses&#039;&#039;&#039; &lt;br /&gt;
****** I|update|OK &lt;br /&gt;
******* - Everything went fine. &lt;br /&gt;
****** I|update|OK|WARNING &lt;br /&gt;
******* Small warning. &lt;br /&gt;
****** I|update|WARNING &lt;br /&gt;
******* Severe warning &lt;br /&gt;
**** &#039;&#039;&#039;Plain Warnings&#039;&#039;&#039; &lt;br /&gt;
***** Format: I|WARNING &lt;br /&gt;
****** Append any warning messages after it - Ex: I|WARNING|You came back too early &lt;br /&gt;
**** &#039;&#039;&#039;Extra Info&#039;&#039;&#039; - Described below under the topic: variables. &lt;br /&gt;
* &#039;&#039;&#039;Host Output&#039;&#039;&#039; &lt;br /&gt;
** Starts with: H| &lt;br /&gt;
** Add the IP with its port: &lt;br /&gt;
*** Ex: H|0.0.0.0:6346 &lt;br /&gt;
** Add the time, thereafter, of the host&#039;s (In seconds*) time in cache: &lt;br /&gt;
*** Ex: H|0.0.0.0:6346|45 &lt;br /&gt;
** If cluster exists with cluster=somerandomwords &lt;br /&gt;
*** Add the clustered words after the host&#039;s age: &lt;br /&gt;
**** Ex: H|0.0.0.0:6346|45|somerandomwords &lt;br /&gt;
* &#039;&#039;&#039;URL Output&#039;&#039;&#039; &lt;br /&gt;
** Starts with: U| &lt;br /&gt;
** Add the URL with http:// before it, plus the port (if it&#039;s not 80). &lt;br /&gt;
*** Ex: U|[http://somerandomcache.com/ http://somerandomcache.com/] &lt;br /&gt;
** Add the time, thereafter, of the URL&#039;s time (In seconds*) in cache: &lt;br /&gt;
*** Ex: U|[http://somerandomcache.com/%7C45 http://somerandomcache.com/|45] &lt;br /&gt;
* &#039;&#039;&#039;Example Cache Output (Beacon Cache) For get Command&#039;&#039;&#039; &lt;br /&gt;
** Example URL: [http://grantgalitz.com/Beacon/gwc.php?get=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;net=gnutella2&amp;amp;ping=1 http://grantgalitz.com/Beacon/gwc.php?get=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;net=gnutella2&amp;amp;ping=1] &lt;br /&gt;
*** Example &amp;quot;Get&amp;quot; Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Getting the hosts and urls with a pong combined&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| I|pong|Beacon Cache 0.1.5D Beta|gnutella-gnutella2H|65.9.200.243:4968|248261H|68.228.129.75:44599|242678H|98.240.196.122:8206|240719H|76.104.12.133:14921|218273H|69.136.1.12:3924|211610H|81.154.208.71:8595|174402H|97.96.105.51:2076|153610H|74.192.153.212:39340|144203H|72.190.106.57:12584|132984H|78.93.71.132:12334|125668H|82.43.248.184:27560|97974H|196.205.224.97:6357|86763H|74.129.219.30:33172|82005H|76.104.12.133:19185|57182H|69.59.83.131:18442|38628U|[http://www.k33bz.com/g2/bazooka.php%7C248639 http://www.k33bz.com/g2/bazooka.php|248639]U|[http://gwebcache.ns1.net/%7C248592 http://gwebcache.ns1.net/|248592]U|[http://gwc2.wodi.org/skulls.php%7C248384 http://gwc2.wodi.org/skulls.php|248384]U|[http://gwc.guufshop.com/skulls/skulls.php%7C248322 http://gwc.guufshop.com/skulls/skulls.php|248322]U|[http://groovy.syxy.com/up/skulls.php%7C248300 http://groovy.syxy.com/up/skulls.php|248300]U|[http://g2.tjtech.org/g2/index.php%7C247770 http://g2.tjtech.org/g2/index.php|247770]U|[http://midian.jayl.de/g2/bazooka.php%7C240719 http://midian.jayl.de/g2/bazooka.php|240719]U|[http://www.dom2porno.info/skulls/skulls.php%7C207473 http://www.dom2porno.info/skulls/skulls.php|207473]U|[http://gwc.frodoslair.net/skulls/skulls%7C125668 http://gwc.frodoslair.net/skulls/skulls|125668]U|[http://holograph.uni.cc/other/skulls.php%7C9642 http://holograph.uni.cc/other/skulls.php|9642] &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Variables&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Mandatory&#039;&#039;&#039; &lt;br /&gt;
** ping: &lt;br /&gt;
*** Main Part: I|pong| &lt;br /&gt;
*** Then add the cache name and version: I|pong|fakecache 0.01 &lt;br /&gt;
*** Then lastly add the network support: &lt;br /&gt;
**** I|pong|fakecache 0.01|gnutella &lt;br /&gt;
***** - Gnutella only &lt;br /&gt;
**** I|pong|fakecache 0.01|gnutella2 &lt;br /&gt;
***** - Gnutella2 only &lt;br /&gt;
**** I|pong|fakecache 0.01|gnutella-gnutella2 &lt;br /&gt;
***** - Gnutella and Gnutella2 served &lt;br /&gt;
** get: &lt;br /&gt;
*** Used by clients to requests alternate cache URLs along with IPs and their port numbers. &lt;br /&gt;
** update: &lt;br /&gt;
*** url: &lt;br /&gt;
**** Client update giving an alternate cache URL. &lt;br /&gt;
**** Formatted with a http:// prefix to each cache. &lt;br /&gt;
*** ip: &lt;br /&gt;
**** Client update giving one&#039;s IP to submit. &lt;br /&gt;
** net: &lt;br /&gt;
*** Which network to serve the client. &lt;br /&gt;
**** Gnutella &lt;br /&gt;
***** Ex: net=gnutella &lt;br /&gt;
**** Gnutella2 &lt;br /&gt;
***** Ex: net=gnutella2 &lt;br /&gt;
**** &#039;&#039;&#039;Should always be lowercase&#039;&#039;&#039; &lt;br /&gt;
***** GWCs should automatically convert network name given to lowercase to prevent Net ID mismatches &lt;br /&gt;
&lt;br /&gt;
solely on case alone. &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
* &lt;br /&gt;
** client: &lt;br /&gt;
*** Four letter code of the client. ex: RAZA &lt;br /&gt;
** version: &lt;br /&gt;
*** Version number of the client. &lt;br /&gt;
* &#039;&#039;&#039;Optional&#039;&#039;&#039; &lt;br /&gt;
** cluster: &lt;br /&gt;
*** To add extra info to an IP update. &lt;br /&gt;
**** Output by cache: H|0.0.0.0|AGE OF HOST (Seconds)|clustering some bull**** &lt;br /&gt;
** statfile: &lt;br /&gt;
*** Exactly like the specification 1 statfile &#039;&#039;&#039;(Same routine and output style)&#039;&#039;&#039;. &lt;br /&gt;
*** Statistics of the cache request: &lt;br /&gt;
**** First line: Total requests of the cache number. &lt;br /&gt;
**** Second line: Requests of the cache an hour number. &lt;br /&gt;
**** Third line: Updates of the cache an hour number. &lt;br /&gt;
&lt;br /&gt;
==== Specification 2.1 ====&lt;br /&gt;
&#039;&#039;&#039;This is an extension of specification 2, not a separate specification!&#039;&#039;&#039; &lt;br /&gt;
Pong extension &lt;br /&gt;
* Append the networks supported joined by a hyphen &#039;-&#039;. &lt;br /&gt;
* Used for client-side validation of networks supported and for network support reporting to other web caches. &lt;br /&gt;
* Format: &lt;br /&gt;
** I|pong|cache name|network names joined by &#039;-&#039; &lt;br /&gt;
** Format Examples: &lt;br /&gt;
*** I|pong|fakecache 0.01|gnutella &lt;br /&gt;
**** - Gnutella only &lt;br /&gt;
*** I|pong|fakecache 0.01|gnutella2 &lt;br /&gt;
**** - Gnutella2 only &lt;br /&gt;
*** I|pong|fakecache 0.01|gnutella-gnutella2 &lt;br /&gt;
**** - Gnutella and Gnutella2 served &lt;br /&gt;
Host Output &lt;br /&gt;
* Just like specification 2, but with more fields supported for host output. &lt;br /&gt;
** H|ip:port|age in cache|clustering|leaves|4 letter vendor code|reported uptime of host|max. leaves possible &lt;br /&gt;
*** The host, age, and clustering fields are all still the same as in specification 2. &lt;br /&gt;
*** The leaf count of the hub reported is in the 5th field. &lt;br /&gt;
*** The vendor code with version number is in the 6th field. &lt;br /&gt;
Request Control Variables: &lt;br /&gt;
* getleaves &lt;br /&gt;
** Used to obtain leaf counts of hubs given &lt;br /&gt;
** 4th field ultilized for current leaf count. &lt;br /&gt;
** 7th field ultilized for maximum leaf slots possible. &lt;br /&gt;
** Use this as &#039;getleaves=1&#039; or &#039;getleaves&#039; to enable. &lt;br /&gt;
* getclusters &lt;br /&gt;
** Enables/Disables clustering. &lt;br /&gt;
** Use this as &#039;getclusters=1&#039;. &lt;br /&gt;
** Using &#039;getclusters&#039; or &#039;getclusters=0&#039; disables cluster output. &lt;br /&gt;
* getvendors &lt;br /&gt;
** Used to obtain the vendor code w/ version number of the hubs given. &lt;br /&gt;
** Found in the 5th field. &lt;br /&gt;
** Use this as &#039;getvendors=1&#039; or &#039;getvendors&#039; to enable. &lt;br /&gt;
* getuptime &lt;br /&gt;
** Used to obtain the vendor code w/ version number of the hubs given. &lt;br /&gt;
** Value is static, do not change the value given when time passes. &lt;br /&gt;
** Found in the 6th field. &lt;br /&gt;
** Use this as &#039;getuptime=1&#039; or &#039;getuptime&#039; to enable. &lt;br /&gt;
* spec &lt;br /&gt;
** To force the specification parameter &lt;br /&gt;
** Currently is only supported by Beacon Cache II &lt;br /&gt;
* pv &lt;br /&gt;
** Similar to the &#039;spec&#039; parameter, except that it does not force, instead it simply negotiates the specification. &lt;br /&gt;
Special Data Requests &lt;br /&gt;
* info &lt;br /&gt;
** Outputs extra details of your cache. &lt;br /&gt;
*** Start with the informational response: I| &lt;br /&gt;
**** Ex: I|open-source|1 &lt;br /&gt;
* support &lt;br /&gt;
** Outputs USEFUL details of your cache. &lt;br /&gt;
*** Start with the informational response: I| &lt;br /&gt;
**** Ex: I|support|gnutella2 &lt;br /&gt;
* getnetworks &lt;br /&gt;
** Outputs the enabled networks in two formats. &lt;br /&gt;
*** Start with the informational response: I| &lt;br /&gt;
**** For the &#039;I|nets|&#039; line &lt;br /&gt;
***** The third field contains the supported networks joined by &#039;-&#039;. &lt;br /&gt;
**** For the &#039;I|networks|&#039; line &lt;br /&gt;
***** Interpret the fields from 3 and beyond as individual network names to challenge against. &lt;br /&gt;
*** Examples &lt;br /&gt;
**** &lt;br /&gt;
***** I|nets|gnutella-gnutella2 &lt;br /&gt;
***** I|networks|gnutella|gnutella2 &lt;br /&gt;
Update Extension Variables: &lt;br /&gt;
* x_leaves &lt;br /&gt;
** Number of leaves running on a given hub or ultrapeer. &lt;br /&gt;
** &#039;&#039;&#039;Value must not be greater than an integer value of 2047.&#039;&#039;&#039; &lt;br /&gt;
* x_max &lt;br /&gt;
** Maximum number of leaves possible on a given hub or ultrapeer. &lt;br /&gt;
** &#039;&#039;&#039;Value must not be greater than an integer value of 2047.&#039;&#039;&#039; &lt;br /&gt;
* uptime &lt;br /&gt;
** Value submitted must be an integer value of the number of seconds of uptime. &lt;br /&gt;
** &#039;&#039;&#039;Value must not be greater than an integer value of 1 year (31536000) and less than 1 hour (60).&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== Pinging Caches With Your Cache ===&lt;br /&gt;
&#039;&#039;&#039;Please follow this standard:&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Client: TEST&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Version: Your Cache&#039;s Name&#039;&#039;&#039; &lt;br /&gt;
** The old value for &amp;quot;version&amp;quot; was 1 &lt;br /&gt;
&#039;&#039;&#039;Some variables to attach to the ping (compatibility):&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;multi&#039;&#039;&#039; &lt;br /&gt;
** Used by some gwcs in their pings to other gwcs. &lt;br /&gt;
** &amp;lt;nowiki&amp;gt;It tells the pinged cache to ignore the &amp;quot;net&amp;quot; parameter (so it should never say network not supported) and outputting the pong using this format, if possible, &amp;quot;I|pong|[cache name] [cache version]|[supported networks list]&amp;quot; - example: I|pong|Skulls 0.2.9|gnutella-gnutella2 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
** Used by Skulls GWC only, supported by Skulls and Beacon Cache II. &lt;br /&gt;
* &#039;&#039;&#039;cache&#039;&#039;&#039; &lt;br /&gt;
** This is added to every request made by some gwcs, it is for statistical purposes only. &lt;br /&gt;
** It simply tells the remote cache that the client is a GWC. &lt;br /&gt;
&#039;&#039;&#039;Help&#039;&#039;&#039; &lt;br /&gt;
* For PHP &lt;br /&gt;
** Use the fsockopen() function to open a connection to a cache. &lt;br /&gt;
*** Make sure you &amp;quot;write&amp;quot; to the fsockopen carry value to open the GWC&#039;s target file. &lt;br /&gt;
**** [http://us.php.net/manual/en/function.fsockopen.php http://us.php.net/manual/en/function.fsockopen.php] &lt;br /&gt;
&lt;br /&gt;
=== Variable Combination Standards ===&lt;br /&gt;
&#039;&#039;&#039;Net variable decides specification!&#039;&#039;&#039; &lt;br /&gt;
* There are many ways to determine spec., but going with net is the safe way. &lt;br /&gt;
* Skulls GWC does not use the network parameter to determine specification level. &lt;br /&gt;
* Beacon Cache (I and II) uses the network parameter to determine the specification level. &lt;br /&gt;
&#039;&#039;&#039;Your cache needs to be able to process certain combinations of variables.&#039;&#039;&#039; &lt;br /&gt;
* Update variable &lt;br /&gt;
** Update should not fail if absent if spec. 2. &lt;br /&gt;
*** A Specification 2 parameter. &lt;br /&gt;
Spec 1 parameters used in Spec 2: &lt;br /&gt;
* Should still accept hostfile and urlfile responses for spec. 2. &lt;br /&gt;
** Beacon Cache (I and II) accepts these parameters on spec 2. &lt;br /&gt;
The &#039;spec&#039; paameter can be used to force a specification: &lt;br /&gt;
* Only known to exist in Beacon Cache II, it can force the request to be handled as a specification 1 or 2 request. &lt;br /&gt;
* Spec 1 = &#039;spec=1&#039; &lt;br /&gt;
* Spec 2 = &#039;spec=2&#039; &lt;br /&gt;
* If &#039;spec&#039; is not equal to any current spec, then default to the predetermined spec. &lt;br /&gt;
&#039;&#039;&#039;Multiple variable requests&#039;&#039;&#039; &lt;br /&gt;
* If for instance a ping and request exist, you should always handle them properly. &lt;br /&gt;
** Same goes with other combos like an update and ping, statfile + ping and info. &lt;br /&gt;
* Handle multiple variables as BEST as possible! &lt;br /&gt;
** Some scanners and GWCs like to fit all their requests into one URL send. &lt;br /&gt;
&lt;br /&gt;
=== Further Information: ===&lt;br /&gt;
* [http://www.gnucleus.com/gwebcache/ Original GWC] [http://www.gnucleus.com/gwebcache/ site] &lt;br /&gt;
** [http://gnucleus.sourceforge.net/gwebcache/specs.html GWC Spec. 1] &lt;br /&gt;
** [http://gnucleus.sourceforge.net/gwebcache/newgwc.html GWC Spec. 2] &lt;br /&gt;
&lt;br /&gt;
=== Gnutella Web Cache ===&lt;br /&gt;
Gnutella requires Gnutella Web Caches (GWC) to get IPs to establish a connection to the network.  These are critical to ensuring the health of the network.  If you have a dedicated server and can spare some extra bandwidth then please consider running a GWC.  People that don&#039;t have a dedicated server or are on normal broadband consumer lines should not run a cache from home.&lt;br /&gt;
&lt;br /&gt;
A GWC is a simple script that can be put on any webserver that supports one of the following scripting languages:&lt;br /&gt;
*JSP (Java Servlet)&lt;br /&gt;
**[http://web.archive.org/web/20061108091447/http://www.mager.org/GWebCache/ Java Servlet GWebCache Application (Archive.org)]&lt;br /&gt;
*C&lt;br /&gt;
**[http://ghostwhitecrab.com/crab/ GhostWhiteCrab]&lt;br /&gt;
*Perl &lt;br /&gt;
**[http://www.jonatkins.com/perlgcache/ Jon Atkins&#039; perlgcache] &lt;br /&gt;
**The original [http://www.gnucleus.com/gwebcache/dist/ GnuWebCache]&lt;br /&gt;
*PHP &lt;br /&gt;
**[http://gwcii.sourceforge.net/ PHPGnuCacheII] - MySQL&lt;br /&gt;
**[http://www.bazookanetworks.com Bazooka G2WC] (recommended) - flat files&lt;br /&gt;
**[http://sourceforge.net/projects/skulls/ Skulls! Multi-Network WebCache] - flat files&lt;br /&gt;
====Further Information:====&lt;br /&gt;
*[http://www.gnucleus.com/gwebcache/|Original GWC site]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{RecoveredPage|--&amp;gt;Saved in timestamp 20090421202728Retrieved from &amp;quot;[https://www.pantheraproject.net/wiki/index.php?title=GWC This page was last modified on April 18, 2009, at 23:25. &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;Copyright © 2002-2009 Shareaza Development Team. &amp;lt;/center&amp;gt;&amp;lt;center&amp;gt;[[Image:poweredby_mediawiki_88x31.png]] --[[User:Ocexyz|Ocexyz]] 16:20, 27 July 2009 (UTC)}}&lt;br /&gt;
&lt;br /&gt;
{{RecoveredPage|Warninig: here ends pasted better formatted recovery. Row recovery has been mooved below as I don&#039;t know if anybody has made any changes in it. If not then row recovery can be deleted I suppose. Paste starts from == Shareaza Specific Details == and ends at second == Shareaza Specific Details ==, here. I hope it is visible.  --[[User:Ocexyz|Ocexyz]] 16:20, 27 July 2009 (UTC)  }}&lt;br /&gt;
&lt;br /&gt;
==Shareaza Specific Details==&lt;br /&gt;
&lt;br /&gt;
{{RecoveredPage|Warninig: here ends pasted better formatted recovery. Row recovery has been mooved below as I don&#039;t know if anybody has made any changes in it. If not then row recovery can be deleted I suppose. Paste starts from &amp;gt;&amp;gt;Shareaza Specific Details&amp;lt;&amp;lt; and ends at second &amp;gt;&amp;gt; Shareaza Specific Details&amp;lt;&amp;lt;, here. I hope it is visible.  --[[User:Ocexyz|Ocexyz]] 23:27, 27 July 2009 (UTC)  }}&lt;br /&gt;
&lt;br /&gt;
* Get String Breakdown:&lt;br /&gt;
          o Update a leaf&lt;br /&gt;
                + &amp;quot;?update=1&amp;amp;ip=(ip):(port)&amp;amp;x_leaves=(leaf count) &lt;br /&gt;
          o Ping Variable&lt;br /&gt;
                + Appends &amp;amp;ping=1 to identify the cache name in debug messages (for gnutella and gnutella2 in 2.4.0.0, but only for gnutella2 now in 2.4.0.X for spec1 cache compatibility).&lt;br /&gt;
                + This feature new to Shareaza. &lt;br /&gt;
          o Network Variable&lt;br /&gt;
                + Appends &amp;amp;net=gnutella2 on Gnutella2 queries.&lt;br /&gt;
                + Does NOT append a network variable on Gnutella(1) queries. &lt;br /&gt;
          o Client Name / Version Format (2.4.0.0 and earlier):&lt;br /&gt;
                + &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) )&lt;br /&gt;
                + &amp;amp;version=(Shareaza&#039;s version) &lt;br /&gt;
          o Client Name / Version Format (2.4.0.X):&lt;br /&gt;
                + If Gnutella&lt;br /&gt;
                      # &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) )&lt;br /&gt;
                      # &amp;amp;version=(Shareaza&#039;s version) &lt;br /&gt;
                + If Gnutella2&lt;br /&gt;
                      # &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) )+(Shareaza&#039;s version) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* GWC Response Matching:&lt;br /&gt;
          o i|&lt;br /&gt;
                + Informational output alone will not be taken as GWC &#039;success.&#039; &lt;br /&gt;
          o i|access|period|(time in sec.)&lt;br /&gt;
                + Time in seconds before Shareaza is allowed to make a request to the cache. &lt;br /&gt;
          o i|update|period|(time in sec.)&lt;br /&gt;
                + Time in seconds before Shareaza is allowed to update to the cache. &lt;br /&gt;
          o i|force|remove and i|update|warning|bad url&lt;br /&gt;
                + Remove the GWC from the internal list. &lt;br /&gt;
          o Some Response Matches (added in 2.3.1.X)&lt;br /&gt;
                + i|NO-URL-NO-HOSTS&lt;br /&gt;
                      # Outputs warning of the cache being totally empty to the system log. &lt;br /&gt;
                + i|NO-URL&lt;br /&gt;
                      # Outputs warning of the cache having no alternative URLs to the system log. &lt;br /&gt;
                + i|NO-HOSTS&lt;br /&gt;
                      # Outputs warning of the cache having no hosts to the system log. &lt;br /&gt;
                + i|warning|&lt;br /&gt;
                      # Outputs warning of the cache to the system log. &lt;br /&gt;
                + ERROR Something Failed&lt;br /&gt;
                      # Outputs warning of the cache to the system log(Buggy Bazooka GWCs workaround). &lt;br /&gt;
                + i|warning|You came back too early (2.3.1.X)&lt;br /&gt;
                + i|warning|client|early (2.3.1.X)&lt;br /&gt;
                + WARNING: You came back too early (2.3.1.X)&lt;br /&gt;
                + ERROR: Client returned too early (2.3.1.X)&lt;br /&gt;
                      # Flood detection for the update side.&lt;br /&gt;
                      # Outputs GWebCache(update) Too many connection attempts to the system log. &lt;br /&gt;
                + too early (2.3.1.X)&lt;br /&gt;
                + early (2.4.0.X)&lt;br /&gt;
                      # Flood detection for the request side.&lt;br /&gt;
                      # Outputs GWebCache URL: Too many connection attempts to the system log. &lt;br /&gt;
                + i|update|OK&lt;br /&gt;
                      # Outputs &amp;quot;GWebCache(v2) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
                + OK&lt;br /&gt;
                      # Outputs &amp;quot;GWebCache(v1) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* GWC Response Matching:&lt;br /&gt;
          o i|&lt;br /&gt;
                + Informational output alone will not be taken as GWC &#039;success.&#039; &lt;br /&gt;
          o i|access|period|(time in sec.)&lt;br /&gt;
                + Time in seconds before Shareaza is allowed to make a request to the cache. &lt;br /&gt;
          o i|update|period|(time in sec.)&lt;br /&gt;
                + Time in seconds before Shareaza is allowed to update to the cache. &lt;br /&gt;
          o i|force|remove and i|update|warning|bad url&lt;br /&gt;
                + Remove the GWC from the internal list. &lt;br /&gt;
          o Some Response Matches (added in 2.3.1.X)&lt;br /&gt;
                + i|NO-URL-NO-HOSTS&lt;br /&gt;
                      # Outputs warning of the cache being totally empty to the system log. &lt;br /&gt;
                + i|NO-URL&lt;br /&gt;
                      # Outputs warning of the cache having no alternative URLs to the system log. &lt;br /&gt;
                + i|NO-HOSTS&lt;br /&gt;
                      # Outputs warning of the cache having no hosts to the system log. &lt;br /&gt;
                + i|warning|&lt;br /&gt;
                      # Outputs warning of the cache to the system log. &lt;br /&gt;
                + ERROR Something Failed&lt;br /&gt;
                      # Outputs warning of the cache to the system log(Buggy Bazooka GWCs workaround). &lt;br /&gt;
                + i|warning|You came back too early (2.3.1.X)&lt;br /&gt;
                + i|warning|client|early (2.3.1.X)&lt;br /&gt;
                + WARNING: You came back too early (2.3.1.X)&lt;br /&gt;
                + ERROR: Client returned too early (2.3.1.X)&lt;br /&gt;
                      # Flood detection for the update side.&lt;br /&gt;
                      # Outputs GWebCache(update) Too many connection attempts to the system log. &lt;br /&gt;
                + too early (2.3.1.X)&lt;br /&gt;
                + early (2.4.0.X)&lt;br /&gt;
                      # Flood detection for the request side.&lt;br /&gt;
                      # Outputs GWebCache URL: Too many connection attempts to the system log. &lt;br /&gt;
                + i|update|OK&lt;br /&gt;
                      # Outputs &amp;quot;GWebCache(v2) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
                + OK&lt;br /&gt;
                      # Outputs &amp;quot;GWebCache(v1) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Gnutella Web Cache Specifications==&lt;br /&gt;
&amp;lt;end of partial recovery by OCE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;end of recovered content&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;row recovery, start&amp;gt; &lt;br /&gt;
 Specification 1:&lt;br /&gt;
&lt;br /&gt;
    * Networks Served&lt;br /&gt;
          o Gnutella &lt;br /&gt;
    * Format&lt;br /&gt;
          o Update went fine:&lt;br /&gt;
                + Ex: OK &lt;br /&gt;
          o Update Warning (Small prob., not that bad):&lt;br /&gt;
                + Ex: &lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
WARNING: Error Message&lt;br /&gt;
&lt;br /&gt;
    * Severe Warning (No &#039;OK&#039; message sent)&lt;br /&gt;
          o Ex: &lt;br /&gt;
&lt;br /&gt;
WARNING: Error Message&lt;br /&gt;
&lt;br /&gt;
    * URL Output:&lt;br /&gt;
          o Ex: http://somefreakinrandomcache.com/cache/gcache.php&lt;br /&gt;
                + OR - WITH A PORT NUMBER (If not 80)&lt;br /&gt;
                      # Ex: http://somefreakinrandomcache.com:8080/cache/gcache.php &lt;br /&gt;
    * Host Output:&lt;br /&gt;
          o Ex: 66.132.55.12:6346 &lt;br /&gt;
    * Pong (ping variable response) - was explained below under the topic: variables.&lt;br /&gt;
    * Example Cache Output (Beacon Cache) For urlfile Command&lt;br /&gt;
          o Example &amp;quot;urlfile Output&amp;quot; URL: Ex: http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;urlfile=1&lt;br /&gt;
                + Example URL Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting urls with a pong combined&lt;br /&gt;
&lt;br /&gt;
PONG Beacon Cache 0.1.5D Beta&lt;br /&gt;
http://gwc.frodoslair.net/skulls/skulls.php&lt;br /&gt;
http://bbs.robertwoolley.co.uk/GWebCache/gcache.php&lt;br /&gt;
http://g2.tjtech.org/g2/&lt;br /&gt;
http://g2.tjtech.org/g2/index.php&lt;br /&gt;
http://gwc.monnsta.net/&lt;br /&gt;
http://holograph.uni.cc/other/skulls.php&lt;br /&gt;
http://gwc.nickstallman.net/&lt;br /&gt;
http://gwc.eod.cc/skulls.php&lt;br /&gt;
http://gwc.frodoslair.net/skulls/skulls&lt;br /&gt;
http://gwc.werwin.net/skulls.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * Example Cache Output (Beacon Cache) For hostfile Command&lt;br /&gt;
          o Example &amp;quot;hostfile Output&amp;quot; URL: Ex: http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;hostfile=1&lt;br /&gt;
                + Example Host Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting the hosts with a pong combined&lt;br /&gt;
&lt;br /&gt;
PONG Beacon Cache 0.1.5D Beta&lt;br /&gt;
71.8.84.153:3915&lt;br /&gt;
99.248.214.157:27529&lt;br /&gt;
69.60.241.55:16369&lt;br /&gt;
193.253.239.246:30218&lt;br /&gt;
68.156.175.121:6348&lt;br /&gt;
71.179.7.241:18344&lt;br /&gt;
74.196.22.241:6348&lt;br /&gt;
12.210.197.194:10531&lt;br /&gt;
222.150.143.77:10000&lt;br /&gt;
58.85.231.135:6346&lt;br /&gt;
24.141.199.164:20205&lt;br /&gt;
72.175.201.195:6348&lt;br /&gt;
69.81.129.228:4880&lt;br /&gt;
97.81.221.63:13219&lt;br /&gt;
70.15.130.224:7759&lt;br /&gt;
216.211.188.106:51903&lt;br /&gt;
75.167.168.156:48660&lt;br /&gt;
12.214.14.3:35916&lt;br /&gt;
76.177.244.106:24180&lt;br /&gt;
98.165.218.139:39630&lt;br /&gt;
68.112.182.125:3685&lt;br /&gt;
68.117.204.57:23482&lt;br /&gt;
65.12.154.25:40760&lt;br /&gt;
69.180.47.169:5711&lt;br /&gt;
75.138.40.173:24987&lt;br /&gt;
98.201.19.0:33662&lt;br /&gt;
70.187.2.144:6348&lt;br /&gt;
68.186.209.107:14429&lt;br /&gt;
69.159.7.61:6348&lt;br /&gt;
76.208.176.196:48199&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * For combining a hostfile and urlfile request:&lt;br /&gt;
          o Warning: This is non-standard.&lt;br /&gt;
          o Example Cache Output (Beacon Cache) For bfile Command&lt;br /&gt;
                + Example &amp;quot;bfile Output&amp;quot; URL: Ex: http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;bfile=1&lt;br /&gt;
                      # Example Host and URL Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting the hosts and urls with a pong combined&lt;br /&gt;
&lt;br /&gt;
PONG Beacon Cache 0.1.5D Beta&lt;br /&gt;
71.8.84.153:3915&lt;br /&gt;
99.248.214.157:27529&lt;br /&gt;
69.60.241.55:16369&lt;br /&gt;
193.253.239.246:30218&lt;br /&gt;
68.156.175.121:6348&lt;br /&gt;
71.179.7.241:18344&lt;br /&gt;
74.196.22.241:6348&lt;br /&gt;
12.210.197.194:10531&lt;br /&gt;
222.150.143.77:10000&lt;br /&gt;
58.85.231.135:6346&lt;br /&gt;
24.141.199.164:20205&lt;br /&gt;
72.175.201.195:6348&lt;br /&gt;
69.81.129.228:4880&lt;br /&gt;
97.81.221.63:13219&lt;br /&gt;
70.15.130.224:7759&lt;br /&gt;
216.211.188.106:51903&lt;br /&gt;
75.167.168.156:48660&lt;br /&gt;
12.214.14.3:35916&lt;br /&gt;
76.177.244.106:24180&lt;br /&gt;
98.165.218.139:39630&lt;br /&gt;
68.112.182.125:3685&lt;br /&gt;
68.117.204.57:23482&lt;br /&gt;
65.12.154.25:40760&lt;br /&gt;
69.180.47.169:5711&lt;br /&gt;
75.138.40.173:24987&lt;br /&gt;
98.201.19.0:33662&lt;br /&gt;
70.187.2.144:6348&lt;br /&gt;
68.186.209.107:14429&lt;br /&gt;
69.159.7.61:6348&lt;br /&gt;
76.208.176.196:48199&lt;br /&gt;
http://gwc.frodoslair.net/skulls/skulls.php&lt;br /&gt;
http://bbs.robertwoolley.co.uk/GWebCache/gcache.php&lt;br /&gt;
http://g2.tjtech.org/g2/&lt;br /&gt;
http://g2.tjtech.org/g2/index.php&lt;br /&gt;
http://gwc.monnsta.net/&lt;br /&gt;
http://holograph.uni.cc/other/skulls.php&lt;br /&gt;
http://gwc.nickstallman.net/&lt;br /&gt;
http://gwc.eod.cc/skulls.php&lt;br /&gt;
http://gwc.frodoslair.net/skulls/skulls&lt;br /&gt;
http://gwc.werwin.net/skulls.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * Variables&lt;br /&gt;
          o Mandatory&lt;br /&gt;
                + ping:&lt;br /&gt;
                      # Response should have this always: PONG&lt;br /&gt;
                      # After, put the cache&#039;s name. ex: PONG fakecache 0.01&lt;br /&gt;
                + client:&lt;br /&gt;
                      # Four letter code of the client. ex: RAZA &lt;br /&gt;
                + version:&lt;br /&gt;
                      # Version number of the client. &lt;br /&gt;
                + urlfile:&lt;br /&gt;
                      # Used by the client to request alternate cache urls. &lt;br /&gt;
                + hostfile:&lt;br /&gt;
                      # Used by the client to request IPs with port numbers attached. &lt;br /&gt;
                + url:&lt;br /&gt;
                      # Client update giving an alternate cache URL.&lt;br /&gt;
                      # Formatted with a http:// prefix to each cache. &lt;br /&gt;
                + ip:&lt;br /&gt;
                      # Client update giving one&#039;s IP to submit. &lt;br /&gt;
                + url1:&lt;br /&gt;
                      # OLD OUTDATED Client update giving an alternate cache URL.&lt;br /&gt;
                      # Formatted with a http:// prefix to each cache. &lt;br /&gt;
                + ip1:&lt;br /&gt;
                      # OLD OUTDATED Client update giving one&#039;s IP to submit. &lt;br /&gt;
          o Optional&lt;br /&gt;
                + bfile:&lt;br /&gt;
                      # For clients to request both URLs and IPs from the cache at the same time. &lt;br /&gt;
                + statfile:&lt;br /&gt;
                      # Statistics of the cache request:&lt;br /&gt;
                            * First line: Total requests of the cache number.&lt;br /&gt;
                            * Second line: Requests of the cache an hour number.&lt;br /&gt;
                            * Third line: Updates of the cache an hour number. &lt;br /&gt;
&lt;br /&gt;
Specification 2:&lt;br /&gt;
&lt;br /&gt;
    * Networks Served&lt;br /&gt;
          o Gnutella, Gnutella2, etc. &lt;br /&gt;
    * Format&lt;br /&gt;
          o Information Output&lt;br /&gt;
                + Starts with: I|&lt;br /&gt;
                      # Categories&lt;br /&gt;
                            * Pong (ping variable response) - Described below under the topic: variables.&lt;br /&gt;
                            * Update Status Response&lt;br /&gt;
                                  o Format: I|update&lt;br /&gt;
                                  o Responses&lt;br /&gt;
                                        + I|update|OK&lt;br /&gt;
                                              # - Everything went fine. &lt;br /&gt;
                                        + I|update|OK|WARNING&lt;br /&gt;
                                              # Small warning. &lt;br /&gt;
                                        + I|update|WARNING&lt;br /&gt;
                                              # Severe warning &lt;br /&gt;
                            * Plain Warnings&lt;br /&gt;
                                  o Format: I|WARNING&lt;br /&gt;
                                        + Append any warning messages after it - Ex: I|WARNING|You came back too early &lt;br /&gt;
                            * Extra Info - Described below under the topic: variables. &lt;br /&gt;
          o Host Output&lt;br /&gt;
                + Starts with: H|&lt;br /&gt;
                + Add the IP with its port:&lt;br /&gt;
                      # Ex: H|0.0.0.0:6346 &lt;br /&gt;
                + Add the time, thereafter, of the host&#039;s (In seconds*) time in cache:&lt;br /&gt;
                      # Ex: H|0.0.0.0:6346|45 &lt;br /&gt;
                + If cluster exists with cluster=somerandomwords&lt;br /&gt;
                      # Add the clustered words after the host&#039;s age:&lt;br /&gt;
                            * Ex: H|0.0.0.0:6346|45|somerandomwords &lt;br /&gt;
          o URL Output&lt;br /&gt;
                + Starts with: U|&lt;br /&gt;
                + Add the URL with http:// before it, plus the port (if it&#039;s not 80).&lt;br /&gt;
                      # Ex: U|http://somerandomcache.com/ &lt;br /&gt;
                + Add the time, thereafter, of the URL&#039;s time (In seconds*) in cache:&lt;br /&gt;
                      # Ex: U|http://somerandomcache.com/|45 &lt;br /&gt;
          o Example Cache Output (Beacon Cache) For get Command&lt;br /&gt;
                + Example URL: http://grantgalitz.com/Beacon/gwc.php?get=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;net=gnutella2&amp;amp;ping=1&lt;br /&gt;
                      # Example &amp;quot;Get&amp;quot; Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting the hosts and urls with a pong combined&lt;br /&gt;
&lt;br /&gt;
I|pong|Beacon Cache 0.1.5D Beta|gnutella-gnutella2&lt;br /&gt;
H|65.9.200.243:4968|248261&lt;br /&gt;
H|68.228.129.75:44599|242678&lt;br /&gt;
H|98.240.196.122:8206|240719&lt;br /&gt;
H|76.104.12.133:14921|218273&lt;br /&gt;
H|69.136.1.12:3924|211610&lt;br /&gt;
H|81.154.208.71:8595|174402&lt;br /&gt;
H|97.96.105.51:2076|153610&lt;br /&gt;
H|74.192.153.212:39340|144203&lt;br /&gt;
H|72.190.106.57:12584|132984&lt;br /&gt;
H|78.93.71.132:12334|125668&lt;br /&gt;
H|82.43.248.184:27560|97974&lt;br /&gt;
H|196.205.224.97:6357|86763&lt;br /&gt;
H|74.129.219.30:33172|82005&lt;br /&gt;
H|76.104.12.133:19185|57182&lt;br /&gt;
H|69.59.83.131:18442|38628&lt;br /&gt;
U|http://www.k33bz.com/g2/bazooka.php|248639&lt;br /&gt;
U|http://gwebcache.ns1.net/|248592&lt;br /&gt;
U|http://gwc2.wodi.org/skulls.php|248384&lt;br /&gt;
U|http://gwc.guufshop.com/skulls/skulls.php|248322&lt;br /&gt;
U|http://groovy.syxy.com/up/skulls.php|248300&lt;br /&gt;
U|http://g2.tjtech.org/g2/index.php|247770&lt;br /&gt;
U|http://midian.jayl.de/g2/bazooka.php|240719&lt;br /&gt;
U|http://www.dom2porno.info/skulls/skulls.php|207473&lt;br /&gt;
U|http://gwc.frodoslair.net/skulls/skulls|125668&lt;br /&gt;
U|http://holograph.uni.cc/other/skulls.php|9642&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * Variables&lt;br /&gt;
          o Mandatory&lt;br /&gt;
                + ping:&lt;br /&gt;
                      # Main Part: I|pong|&lt;br /&gt;
                      # Then add the cache name and version: I|pong|fakecache 0.01&lt;br /&gt;
                      # Then lastly add the network support:&lt;br /&gt;
                            * I|pong|fakecache 0.01|gnutella&lt;br /&gt;
                                  o - Gnutella only &lt;br /&gt;
                            * I|pong|fakecache 0.01|gnutella2&lt;br /&gt;
                                  o - Gnutella2 only &lt;br /&gt;
                            * I|pong|fakecache 0.01|gnutella-gnutella2&lt;br /&gt;
                                  o - Gnutella and Gnutella2 served &lt;br /&gt;
                + get:&lt;br /&gt;
                      # Used by clients to requests alternate cache URLs along with IPs and their port numbers. &lt;br /&gt;
                + update:&lt;br /&gt;
                      # url:&lt;br /&gt;
                            * Client update giving an alternate cache URL.&lt;br /&gt;
                            * Formatted with a http:// prefix to each cache. &lt;br /&gt;
                      # ip:&lt;br /&gt;
                            * Client update giving one&#039;s IP to submit. &lt;br /&gt;
                + net:&lt;br /&gt;
                      # Which network to serve the client.&lt;br /&gt;
                            * Gnutella&lt;br /&gt;
                                  o Ex: net=gnutella &lt;br /&gt;
                            * Gnutella2&lt;br /&gt;
                                  o Ex: net=gnutella2 &lt;br /&gt;
                            * Should always be lowercase&lt;br /&gt;
                                  o GWCs should automatically convert network name given to lowercase to prevent Net ID mismatches &lt;br /&gt;
&lt;br /&gt;
solely on case alone.&lt;br /&gt;
&lt;br /&gt;
    *&lt;br /&gt;
          o&lt;br /&gt;
                + client:&lt;br /&gt;
                      # Four letter code of the client. ex: RAZA &lt;br /&gt;
                + version:&lt;br /&gt;
                      # Version number of the client. &lt;br /&gt;
          o Optional&lt;br /&gt;
                + cluster:&lt;br /&gt;
                      # To add extra info to an IP update.&lt;br /&gt;
                            * Output by cache: H|0.0.0.0|AGE OF HOST (Seconds)|clustering some bull**** &lt;br /&gt;
                + statfile:&lt;br /&gt;
                      # Exactly like the specification 1 statfile (Same routine and output style).&lt;br /&gt;
                      # Statistics of the cache request:&lt;br /&gt;
                            * First line: Total requests of the cache number.&lt;br /&gt;
                            * Second line: Requests of the cache an hour number.&lt;br /&gt;
                            * Third line: Updates of the cache an hour number. &lt;br /&gt;
&lt;br /&gt;
Specification 2.1&lt;br /&gt;
&lt;br /&gt;
    * This is an extension of specification 2, not a separate specification!&lt;br /&gt;
    * Pong extension&lt;br /&gt;
          o Append the networks supported joined by a hyphen &#039;-&#039;.&lt;br /&gt;
          o Used for client-side validation of networks supported and for network support reporting to other web caches.&lt;br /&gt;
          o Format:&lt;br /&gt;
                + I|pong|cache name|network names joined by &#039;-&#039;&lt;br /&gt;
                + Format Examples:&lt;br /&gt;
                      # I|pong|fakecache 0.01|gnutella&lt;br /&gt;
                            * - Gnutella only &lt;br /&gt;
                      # I|pong|fakecache 0.01|gnutella2&lt;br /&gt;
                            * - Gnutella2 only &lt;br /&gt;
                      # I|pong|fakecache 0.01|gnutella-gnutella2&lt;br /&gt;
                            * - Gnutella and Gnutella2 served &lt;br /&gt;
    * Host Output&lt;br /&gt;
          o Just like specification 2, but with more fields supported for host output.&lt;br /&gt;
                + H|ip:port|age in cache|clustering|leaves|4 letter vendor code|reported uptime of host|max. leaves possible&lt;br /&gt;
                      # The host, age, and clustering fields are all still the same as in specification 2.&lt;br /&gt;
                      # The leaf count of the hub reported is in the 5th field.&lt;br /&gt;
                      # The vendor code with version number is in the 6th field. &lt;br /&gt;
    * Request Control Variables:&lt;br /&gt;
          o getleaves&lt;br /&gt;
                + Used to obtain leaf counts of hubs given&lt;br /&gt;
                + 4th field ultilized for current leaf count.&lt;br /&gt;
                + 7th field ultilized for maximum leaf slots possible.&lt;br /&gt;
                + Use this as &#039;getleaves=1&#039; or &#039;getleaves&#039; to enable. &lt;br /&gt;
          o getclusters&lt;br /&gt;
                + Enables/Disables clustering.&lt;br /&gt;
                + Use this as &#039;getclusters=1&#039;.&lt;br /&gt;
                + Using &#039;getclusters&#039; or &#039;getclusters=0&#039; disables cluster output. &lt;br /&gt;
          o getvendors&lt;br /&gt;
                + Used to obtain the vendor code w/ version number of the hubs given.&lt;br /&gt;
                + Found in the 5th field.&lt;br /&gt;
                + Use this as &#039;getvendors=1&#039; or &#039;getvendors&#039; to enable. &lt;br /&gt;
          o getuptime&lt;br /&gt;
                + Used to obtain the vendor code w/ version number of the hubs given.&lt;br /&gt;
                + Value is static, do not change the value given when time passes.&lt;br /&gt;
                + Found in the 6th field.&lt;br /&gt;
                + Use this as &#039;getuptime=1&#039; or &#039;getuptime&#039; to enable. &lt;br /&gt;
          o spec&lt;br /&gt;
                + To force the specification parameter&lt;br /&gt;
                + Currently is only supported by Beacon Cache II &lt;br /&gt;
          o pv&lt;br /&gt;
                + Similar to the &#039;spec&#039; parameter, except that it does not force, instead it simply negotiates the specification. &lt;br /&gt;
    * Special Data Requests&lt;br /&gt;
          o info&lt;br /&gt;
                + Outputs extra details of your cache.&lt;br /&gt;
                      # Start with the informational response: I|&lt;br /&gt;
                            * Ex: I|open-source|1 &lt;br /&gt;
          o support&lt;br /&gt;
                + Outputs USEFUL details of your cache.&lt;br /&gt;
                      # Start with the informational response: I|&lt;br /&gt;
                            * Ex: I|support|gnutella2 &lt;br /&gt;
          o getnetworks&lt;br /&gt;
                + Outputs the enabled networks in two formats.&lt;br /&gt;
                      # Start with the informational response: I|&lt;br /&gt;
                            * For the &#039;I|nets|&#039; line&lt;br /&gt;
                                  o The third field contains the supported networks joined by &#039;-&#039;. &lt;br /&gt;
                            * For the &#039;I|networks|&#039; line&lt;br /&gt;
                                  o Interpret the fields from 3 and beyond as individual network names to challenge against. &lt;br /&gt;
                      # Examples&lt;br /&gt;
                            *&lt;br /&gt;
                                  o I|nets|gnutella-gnutella2&lt;br /&gt;
                                  o I|networks|gnutella|gnutella2 &lt;br /&gt;
    * Update Extension Variables:&lt;br /&gt;
          o x_leaves&lt;br /&gt;
                + Number of leaves running on a given hub or ultrapeer.&lt;br /&gt;
                + Value must not be greater than an integer value of 2047. &lt;br /&gt;
          o x_max&lt;br /&gt;
                + Maximum number of leaves possible on a given hub or ultrapeer.&lt;br /&gt;
                + Value must not be greater than an integer value of 2047. &lt;br /&gt;
          o uptime&lt;br /&gt;
                + Value submitted must be an integer value of the number of seconds of uptime.&lt;br /&gt;
                + Value must not be greater than an integer value of 1 year (31536000) and less than 1 hour (60). &lt;br /&gt;
&lt;br /&gt;
Pinging Caches With Your Cache&lt;br /&gt;
&lt;br /&gt;
    * Please follow this standard:&lt;br /&gt;
          o Client: TEST&lt;br /&gt;
          o Version: Your Cache&#039;s Name&lt;br /&gt;
                + The old value for &amp;quot;version&amp;quot; was 1 &lt;br /&gt;
    * Some variables to attach to the ping (compatibility):&lt;br /&gt;
          o multi&lt;br /&gt;
                + Used by some gwcs in their pings to other gwcs.&lt;br /&gt;
                + It tells the pinged cache to ignore the &amp;quot;net&amp;quot; parameter (so it should never say network not supported) and outputting the pong using this format, if possible, &amp;quot;I|pong|[cache name] [cache version]|[supported networks list]|[url adding is enabled]&amp;quot; - example: I|pong|Skulls 0.2.8a|gnutella-gnutella2|1&lt;br /&gt;
                + Used by Skulls GWC only. &lt;br /&gt;
          o cache&lt;br /&gt;
                + This is added to every request made by some gwcs, it is for statistical purposes only.&lt;br /&gt;
                + It simply tells the remote cache that the client is a GWC. &lt;br /&gt;
    * Help&lt;br /&gt;
          o For PHP&lt;br /&gt;
                + Use the fsockopen() function to open a connection to a cache.&lt;br /&gt;
                      # Make sure you &amp;quot;write&amp;quot; to the fsockopen carry value to open the GWC&#039;s target file.&lt;br /&gt;
                            * http://us.php.net/manual/en/function.fsockopen.php &lt;br /&gt;
&lt;br /&gt;
Variable Combination Standards&lt;br /&gt;
&lt;br /&gt;
    * Net variable decides specification!&lt;br /&gt;
          o There are many ways to determine spec., but going with net is the safe way.&lt;br /&gt;
          o Skulls GWC does not use the network parameter to determine specification level.&lt;br /&gt;
          o Beacon Cache (I and II) uses the network parameter to determine the specification level. &lt;br /&gt;
    * Your cache needs to be able to process certain combinations of variables.&lt;br /&gt;
          o Update variable&lt;br /&gt;
                + Update should not fail if absent if spec. 2.&lt;br /&gt;
                      # A Specification 2 parameter. &lt;br /&gt;
    * Spec 1 parameters used in Spec 2:&lt;br /&gt;
          o Should still accept hostfile and urlfile responses for spec. 2.&lt;br /&gt;
                + Beacon Cache (I and II) accepts these parameters on spec 2. &lt;br /&gt;
    * The &#039;spec&#039; paameter can be used to force a specification:&lt;br /&gt;
          o Only known to exist in Beacon Cache II, it can force the request to be handled as a specification 1 or 2 request.&lt;br /&gt;
          o Spec 1 = &#039;spec=1&#039;&lt;br /&gt;
          o Spec 2 = &#039;spec=2&#039;&lt;br /&gt;
          o If &#039;spec&#039; is not equal to any current spec, then default to the predetermined spec. &lt;br /&gt;
    * Multiple variable requests&lt;br /&gt;
          o If for instance a ping and request exist, you should always handle them properly.&lt;br /&gt;
                + Same goes with other combos like an update and ping, statfile + ping and info. &lt;br /&gt;
          o Handle multiple variables as BEST as possible!&lt;br /&gt;
                + Some scanners and GWCs like to fit all their requests into one URL send. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;row recovery, end&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Further Information:&lt;br /&gt;
&lt;br /&gt;
* [http://www.gnucleus.com/gwebcache/ Original GWC site]&lt;br /&gt;
** [http://gnucleus.sourceforge.net/gwebcache/specs.html GWC Spec. 1]&lt;br /&gt;
** [http://gnucleus.sourceforge.net/gwebcache/newgwc.html GWC Spec. 2] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;content recovered from last aviable backup&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Gnutella Web Cache===&lt;br /&gt;
Gnutella requires Gnutella Web Caches (GWC) to get IPs to establish a connection to the network.  These are critical to ensuring the health of the network.  If you have a dedicated server and can spare some extra bandwidth then please consider running a GWC.  People that don&#039;t have a dedicated server or are on normal broadband consumer lines should not run a cache from home.&lt;br /&gt;
&lt;br /&gt;
A GWC is a simple script that can be put on any webserver that supports one of the following scripting languages:&lt;br /&gt;
*JSP (Java Servlet)&lt;br /&gt;
**[http://web.archive.org/web/20061108091447/http://www.mager.org/GWebCache/ Java Servlet GWebCache Application (Archive.org)]&lt;br /&gt;
*C&lt;br /&gt;
**[http://ghostwhitecrab.com/crab/ GhostWhiteCrab]&lt;br /&gt;
*Perl &lt;br /&gt;
**[http://www.jonatkins.com/perlgcache/ Jon Atkins&#039; perlgcache] &lt;br /&gt;
**The original [http://www.gnucleus.com/gwebcache/dist/ GnuWebCache]&lt;br /&gt;
*PHP &lt;br /&gt;
**[http://gwcii.sourceforge.net/ PHPGnuCacheII] - MySQL&lt;br /&gt;
**[http://www.bazookanetworks.com Bazooka G2WC] (recommended) - flat files&lt;br /&gt;
**[http://sourceforge.net/projects/skulls/ Skulls! Multi-Network WebCache] - flat files&lt;br /&gt;
=== Further Information: ===&lt;br /&gt;
* [http://www.gnucleus.com/gwebcache/ Original GWC site]&lt;br /&gt;
&lt;br /&gt;
[[Category:External Links]]&lt;/div&gt;</summary>
		<author><name>Ale5000</name></author>
	</entry>
	<entry>
		<id>https://shareaza.sourceforge.net/w/index.php?title=Talk:GWC_specs&amp;diff=11503</id>
		<title>Talk:GWC specs</title>
		<link rel="alternate" type="text/html" href="https://shareaza.sourceforge.net/w/index.php?title=Talk:GWC_specs&amp;diff=11503"/>
		<updated>2015-03-25T12:26:18Z</updated>

		<summary type="html">&lt;p&gt;Ale5000: Sorry, wrong place&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ale5000</name></author>
	</entry>
	<entry>
		<id>https://shareaza.sourceforge.net/w/index.php?title=GWC_specs&amp;diff=11502</id>
		<title>GWC specs</title>
		<link rel="alternate" type="text/html" href="https://shareaza.sourceforge.net/w/index.php?title=GWC_specs&amp;diff=11502"/>
		<updated>2015-03-25T12:25:38Z</updated>

		<summary type="html">&lt;p&gt;Ale5000: Updated multi=1 details&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;For general information on GWCs, have a look at the [[GWC]] Wiki page.&#039;&#039;&lt;br /&gt;
{{do not translate}}&lt;br /&gt;
This page is thought to give an overview over the GWC specifications as they are implemented into Shareaza.&lt;br /&gt;
&lt;br /&gt;
A GWC is a simple script that can be put on any webserver that supports one of the following scripting languages: &lt;br /&gt;
&lt;br /&gt;
* JSP (Java Servlet) &lt;br /&gt;
** [http://www1.mager.org/GWebCache/ Jums Web Cache] (Excellent for heavy loads) &lt;br /&gt;
* C &lt;br /&gt;
** [http://wiki.limewire.org/index.php?title=GhostWhiteCrab GhostWhiteCrab] (For dedicated server environments and people who know how to compile C source code!) &lt;br /&gt;
* ASP &lt;br /&gt;
** [http://www.edazzle.net/downloads/gerry.zip Gerry GWC] &lt;br /&gt;
** [https://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=7846&amp;amp;lngWId=4 Lynn (v.s. 0.5)] &lt;br /&gt;
** [https://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=7731&amp;amp;lngWId=4 Lynn (v.s. 0.4)] &lt;br /&gt;
** [http://www.poundwebhosting.com/cgi-bin/lynnx.asp LynnX] &lt;br /&gt;
* Perl &lt;br /&gt;
** [http://www.jonatkins.com/perlgcache/ Jon Atkins&#039; perlgcache] &lt;br /&gt;
** The original [http://www.gnucleus.com/gwebcache/dist/ GnuWebCache] &lt;br /&gt;
&#039;&#039;&#039;PHP&#039;&#039;&#039; &#039;&#039;(Tip: PHP GWCs are usually the easiest to run and setup on a server.)&#039;&#039;&lt;br /&gt;
** [http://gwcii.sourceforge.net/ PHPGnuCacheII] &lt;br /&gt;
** [http://www.bazookanetworks.com/ Bazooka G2WC] &lt;br /&gt;
* The original [http://www.gnucleus.com/gwebcache/dist/ GnuWebCache] &#039;&#039;(PHP version is no longer supported)&#039;&#039; &lt;br /&gt;
** [http://sourceforge.net/projects/skulls/ Skulls! Multi-Network WebCache] &lt;br /&gt;
** [http://sourceforge.net/projects/beaconcache/ Beacon Cache] &lt;br /&gt;
** [http://code.google.com/p/cachechu/ Cachechu G2WC] &lt;br /&gt;
&lt;br /&gt;
== Breakdown Of The Gnutella Web Caches: == &lt;br /&gt;
{{RecoveredPage|I recently put this into a table. The contents need to be verified -- [[User:Cyko 01|Cyko 01]]}}&lt;br /&gt;
&lt;br /&gt;
{| width= auto; style=&amp;quot;font-size: 85%; text-align: center;text-valign: middle;&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Cache:&lt;br /&gt;
! rowspan=1 |Gnutella:&lt;br /&gt;
! rowspan=1 |Gnutella2:&lt;br /&gt;
! rowspan=1 |Spec 1:&lt;br /&gt;
! rowspan=1 |Spec 2:&lt;br /&gt;
! rowspan=1 |Flat-File:&lt;br /&gt;
! rowspan=1 |SQL:&lt;br /&gt;
! rowspan=1 |Installer:&lt;br /&gt;
! rowspan=1 |Other Networks:&lt;br /&gt;
! rowspan=1 |Different network instances:&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Beacon Cache (Core 2)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|style=&amp;quot;background: #CCFFCC;&amp;quot;| Yes (As of 0.2.0 Alpha)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Beacon Cache (Core 1)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Skulls&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|JumsWebCache&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|GnuWebCache (Perl)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|GnuWebCache (PHP) &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|GhostWhiteCrab(GWC) &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|style=&amp;quot;background: #FFFFCC;&amp;quot;| N/A&lt;br /&gt;
|style=&amp;quot;background: #FFFFCC;&amp;quot;| N/A&lt;br /&gt;
|style=&amp;quot;background: #FFFFCC;&amp;quot;| N/A&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|PHPGnuCacheII &lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Bazooka &lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Cachechu&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Perlgcache&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Gerry GWC (v2)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Gerry GWC (v1)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|Lynn&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 style=&amp;quot;background: #CCCCCC;&amp;quot;|LynnX&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Shareaza Specific Details == &lt;br /&gt;
&lt;br /&gt;
{{RecoveredPage|Warninig: here I have pasted better formatted recovery, but not verified. Row recovery has been mooved below as I don&#039;t know if anybody has made any changes in it. If not then row recovery can be deleted. Paste starts from &amp;gt;&amp;gt;Shareaza Specific Details&amp;lt;&amp;lt;, here, and ends at second &amp;gt;&amp;gt;Shareaza Specific Details&amp;lt;&amp;lt; I hope it is visible.  --[[User:Ocexyz|Ocexyz]] 23:27, 27 July 2009 (UTC)}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Get String Breakdown:&#039;&#039;&#039; &lt;br /&gt;
* Update a leaf &lt;br /&gt;
** &amp;quot;?update=1&amp;amp;ip=(ip):(port)&amp;amp;x_leaves=(leaf count) &lt;br /&gt;
* Ping Variable &lt;br /&gt;
** Appends &amp;amp;ping=1 to identify the cache name in debug messages (for gnutella and gnutella2 in 2.4.0.0, but only for gnutella2 now in 2.4.0.X for spec1 cache compatibility). &lt;br /&gt;
** This feature new to Shareaza. &lt;br /&gt;
* Network Variable &lt;br /&gt;
** Appends &amp;amp;net=gnutella2 on Gnutella2 queries. &lt;br /&gt;
** Does NOT append a network variable on Gnutella(1) queries. &lt;br /&gt;
* Client Name / Version Format (2.4.0.0 and earlier): &lt;br /&gt;
** &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) ) &lt;br /&gt;
** &amp;amp;version=(Shareaza&#039;s version) &lt;br /&gt;
* Client Name / Version Format (2.4.0.X): &lt;br /&gt;
** If Gnutella &lt;br /&gt;
*** &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) ) &lt;br /&gt;
*** &amp;amp;version=(Shareaza&#039;s version) &lt;br /&gt;
** If Gnutella2 &lt;br /&gt;
*** &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) )+(Shareaza&#039;s version) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GWC Response Matching:&#039;&#039;&#039; &lt;br /&gt;
* i| &lt;br /&gt;
** Informational output alone will not be taken as GWC &#039;success.&#039; &lt;br /&gt;
* i|access|period|(time in sec.) &lt;br /&gt;
** Time in seconds before Shareaza is allowed to make a request to the cache. &lt;br /&gt;
* i|update|period|(time in sec.) &lt;br /&gt;
** Time in seconds before Shareaza is allowed to update to the cache. &lt;br /&gt;
* i|force|remove and i|update|warning|bad url &lt;br /&gt;
** Remove the GWC from the internal list. &lt;br /&gt;
* Some Response Matches (added in 2.3.1.X) &lt;br /&gt;
** i|NO-URL-NO-HOSTS &lt;br /&gt;
*** Outputs warning of the cache being totally empty to the system log. &lt;br /&gt;
** i|NO-URL &lt;br /&gt;
*** Outputs warning of the cache having no alternative URLs to the system log. &lt;br /&gt;
** i|NO-HOSTS &lt;br /&gt;
*** Outputs warning of the cache having no hosts to the system log. &lt;br /&gt;
** i|warning| &lt;br /&gt;
*** Outputs warning of the cache to the system log. &lt;br /&gt;
** ERROR Something Failed &lt;br /&gt;
*** Outputs warning of the cache to the system log(Buggy Bazooka GWCs workaround). &lt;br /&gt;
** i|warning|You came back too early (2.3.1.X) &lt;br /&gt;
** i|warning|client|early (2.3.1.X) &lt;br /&gt;
** WARNING: You came back too early (2.3.1.X) &lt;br /&gt;
** ERROR: Client returned too early (2.3.1.X) &lt;br /&gt;
*** Flood detection for the update side. &lt;br /&gt;
*** Outputs GWebCache(update) Too many connection attempts to the system log. &lt;br /&gt;
** too early (2.3.1.X) &lt;br /&gt;
** early (2.4.0.X) &lt;br /&gt;
*** Flood detection for the request side. &lt;br /&gt;
*** Outputs GWebCache URL: Too many connection attempts to the system log. &lt;br /&gt;
** i|update|OK &lt;br /&gt;
*** Outputs &amp;quot;GWebCache(v2) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
** OK &lt;br /&gt;
*** Outputs &amp;quot;GWebCache(v1) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
&lt;br /&gt;
== Gnutella Web Cache Specifications ==&lt;br /&gt;
==== Specification 1: ====&lt;br /&gt;
* &#039;&#039;&#039;Networks Served&#039;&#039;&#039; &lt;br /&gt;
** Gnutella &lt;br /&gt;
* &#039;&#039;&#039;Format&#039;&#039;&#039; &lt;br /&gt;
** Update went fine: &lt;br /&gt;
*** Ex: OK &lt;br /&gt;
** Update Warning (Small prob., not that bad): &lt;br /&gt;
*** Ex: OKWARNING: Error Message &lt;br /&gt;
&lt;br /&gt;
* Severe Warning (No &#039;OK&#039; message sent) &lt;br /&gt;
** Ex: WARNING: Error Message&lt;br /&gt;
&lt;br /&gt;
* URL Output: &lt;br /&gt;
** Ex: [http://somefreakinrandomcache.com/cache/gcache.php http://somefreakinrandomcache.com/cache/gcache.php] &lt;br /&gt;
*** OR - WITH A PORT NUMBER (If not 80) &lt;br /&gt;
**** Ex: [http://somefreakinrandomcache.com:8080/cache/gcache.php http://somefreakinrandomcache.com:8080/cache/gcache.php] &lt;br /&gt;
* Host Output: &lt;br /&gt;
** Ex: 66.132.55.12:6346 &lt;br /&gt;
* Pong (ping variable response) - was explained below under the topic: variables. &lt;br /&gt;
* &#039;&#039;&#039;Example Cache Output (Beacon Cache) For urlfile Command&#039;&#039;&#039; &lt;br /&gt;
** Example &amp;quot;urlfile Output&amp;quot; URL: Ex: [http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;urlfile=1 http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;urlfile=1] &lt;br /&gt;
*** Example URL Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Getting urls with a pong combined&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| PONG Beacon Cache 0.1.5D Beta[http://gwc.frodoslair.net/skulls/skulls.php http://gwc.frodoslair.net/skulls/skulls.php][http://bbs.robertwoolley.co.uk/GWebCache/gcache.php http://bbs.robertwoolley.co.uk/GWebCache/gcache.php][http://g2.tjtech.org/g2/ http://g2.tjtech.org/g2/][http://g2.tjtech.org/g2/index.php http://g2.tjtech.org/g2/index.php][http://gwc.monnsta.net/ http://gwc.monnsta.net/][http://holograph.uni.cc/other/skulls.php http://holograph.uni.cc/other/skulls.php][http://gwc.nickstallman.net/ http://gwc.nickstallman.net/][http://gwc.eod.cc/skulls.php http://gwc.eod.cc/skulls.php][http://gwc.frodoslair.net/skulls/skulls http://gwc.frodoslair.net/skulls/skulls][http://gwc.werwin.net/skulls.php http://gwc.werwin.net/skulls.php] &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
* &#039;&#039;&#039;Example Cache Output (Beacon Cache) For hostfile Command&#039;&#039;&#039; &lt;br /&gt;
** Example &amp;quot;hostfile Output&amp;quot; URL: Ex: [http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;hostfile=1 http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;hostfile=1] &lt;br /&gt;
*** Example Host Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Getting the hosts with a pong combined&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| PONG Beacon Cache 0.1.5D Beta71.8.84.153:391599.248.214.157:2752969.60.241.55:16369193.253.239.246:3021868.156.175.121:634871.179.7.241:1834474.196.22.241:634812.210.197.194:10531222.150.143.77:1000058.85.231.135:634624.141.199.164:2020572.175.201.195:634869.81.129.228:488097.81.221.63:1321970.15.130.224:7759216.211.188.106:5190375.167.168.156:4866012.214.14.3:3591676.177.244.106:2418098.165.218.139:3963068.112.182.125:368568.117.204.57:2348265.12.154.25:4076069.180.47.169:571175.138.40.173:2498798.201.19.0:3366270.187.2.144:634868.186.209.107:1442969.159.7.61:634876.208.176.196:48199&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
* &#039;&#039;&#039;For combining a hostfile and urlfile request:&#039;&#039;&#039; &lt;br /&gt;
** Warning: This is non-standard. &lt;br /&gt;
** &#039;&#039;&#039;Example Cache Output (Beacon Cache) For bfile Command&#039;&#039;&#039; &lt;br /&gt;
*** Example &amp;quot;bfile Output&amp;quot; URL: Ex: [http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;bfile=1 http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;bfile=1] &lt;br /&gt;
**** Example Host and URL Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Getting the hosts and urls with a pong combined&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| PONG Beacon Cache 0.1.5D Beta71.8.84.153:391599.248.214.157:2752969.60.241.55:16369193.253.239.246:3021868.156.175.121:634871.179.7.241:1834474.196.22.241:634812.210.197.194:10531222.150.143.77:1000058.85.231.135:634624.141.199.164:2020572.175.201.195:634869.81.129.228:488097.81.221.63:1321970.15.130.224:7759216.211.188.106:5190375.167.168.156:4866012.214.14.3:3591676.177.244.106:2418098.165.218.139:3963068.112.182.125:368568.117.204.57:2348265.12.154.25:4076069.180.47.169:571175.138.40.173:2498798.201.19.0:3366270.187.2.144:634868.186.209.107:1442969.159.7.61:634876.208.176.196:48199[http://gwc.frodoslair.net/skulls/skulls.php http://gwc.frodoslair.net/skulls/skulls.php][http://bbs.robertwoolley.co.uk/GWebCache/gcache.php http://bbs.robertwoolley.co.uk/GWebCache/gcache.php][http://g2.tjtech.org/g2/ http://g2.tjtech.org/g2/][http://g2.tjtech.org/g2/index.php http://g2.tjtech.org/g2/index.php][http://gwc.monnsta.net/ http://gwc.monnsta.net/][http://holograph.uni.cc/other/skulls.php http://holograph.uni.cc/other/skulls.php][http://gwc.nickstallman.net/ http://gwc.nickstallman.net/][http://gwc.eod.cc/skulls.php http://gwc.eod.cc/skulls.php][http://gwc.frodoslair.net/skulls/skulls http://gwc.frodoslair.net/skulls/skulls][http://gwc.werwin.net/skulls.php http://gwc.werwin.net/skulls.php] &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Variables&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Mandatory&#039;&#039;&#039; &lt;br /&gt;
** ping: &lt;br /&gt;
*** Response should have this always: PONG&lt;br /&gt;
*** After, put the cache&#039;s name. ex: PONG fakecache 0.01&lt;br /&gt;
** client: &lt;br /&gt;
*** Four letter code of the client. ex: RAZA &lt;br /&gt;
** version: &lt;br /&gt;
*** Version number of the client. &lt;br /&gt;
** urlfile: &lt;br /&gt;
*** Used by the client to request alternate cache urls. &lt;br /&gt;
** hostfile: &lt;br /&gt;
*** Used by the client to request IPs with port numbers attached. &lt;br /&gt;
** url: &lt;br /&gt;
*** Client update giving an alternate cache URL. &lt;br /&gt;
*** Formatted with a http:// prefix to each cache. &lt;br /&gt;
** ip: &lt;br /&gt;
*** Client update giving one&#039;s IP to submit. &lt;br /&gt;
** url1: &lt;br /&gt;
*** OLD OUTDATED Client update giving an alternate cache URL. &lt;br /&gt;
*** Formatted with a http:// prefix to each cache. &lt;br /&gt;
** ip1: &lt;br /&gt;
*** OLD OUTDATED Client update giving one&#039;s IP to submit. &lt;br /&gt;
* &#039;&#039;&#039;Optional&#039;&#039;&#039; &lt;br /&gt;
** bfile: &lt;br /&gt;
*** For clients to request both URLs and IPs from the cache at the same time. &lt;br /&gt;
** statfile: &lt;br /&gt;
*** Statistics of the cache request: &lt;br /&gt;
**** First line: Total requests of the cache number. &lt;br /&gt;
**** Second line: Requests of the cache an hour number. &lt;br /&gt;
**** Third line: Updates of the cache an hour number.&lt;br /&gt;
&lt;br /&gt;
==== Specification 2: ====&lt;br /&gt;
&#039;&#039;&#039;Networks Served&#039;&#039;&#039; &lt;br /&gt;
* Gnutella, Gnutella2, etc. &lt;br /&gt;
&#039;&#039;&#039;Format&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Information Output&#039;&#039;&#039; &lt;br /&gt;
** Starts with: I| &lt;br /&gt;
*** &#039;&#039;&#039;Categories&#039;&#039;&#039; &lt;br /&gt;
**** &#039;&#039;&#039;Pong&#039;&#039;&#039; (ping variable response) - Described below under the topic: variables. &lt;br /&gt;
**** &#039;&#039;&#039;Update Status Response&#039;&#039;&#039; &lt;br /&gt;
***** Format: I|update &lt;br /&gt;
***** &#039;&#039;&#039;Responses&#039;&#039;&#039; &lt;br /&gt;
****** I|update|OK &lt;br /&gt;
******* - Everything went fine. &lt;br /&gt;
****** I|update|OK|WARNING &lt;br /&gt;
******* Small warning. &lt;br /&gt;
****** I|update|WARNING &lt;br /&gt;
******* Severe warning &lt;br /&gt;
**** &#039;&#039;&#039;Plain Warnings&#039;&#039;&#039; &lt;br /&gt;
***** Format: I|WARNING &lt;br /&gt;
****** Append any warning messages after it - Ex: I|WARNING|You came back too early &lt;br /&gt;
**** &#039;&#039;&#039;Extra Info&#039;&#039;&#039; - Described below under the topic: variables. &lt;br /&gt;
* &#039;&#039;&#039;Host Output&#039;&#039;&#039; &lt;br /&gt;
** Starts with: H| &lt;br /&gt;
** Add the IP with its port: &lt;br /&gt;
*** Ex: H|0.0.0.0:6346 &lt;br /&gt;
** Add the time, thereafter, of the host&#039;s (In seconds*) time in cache: &lt;br /&gt;
*** Ex: H|0.0.0.0:6346|45 &lt;br /&gt;
** If cluster exists with cluster=somerandomwords &lt;br /&gt;
*** Add the clustered words after the host&#039;s age: &lt;br /&gt;
**** Ex: H|0.0.0.0:6346|45|somerandomwords &lt;br /&gt;
* &#039;&#039;&#039;URL Output&#039;&#039;&#039; &lt;br /&gt;
** Starts with: U| &lt;br /&gt;
** Add the URL with http:// before it, plus the port (if it&#039;s not 80). &lt;br /&gt;
*** Ex: U|[http://somerandomcache.com/ http://somerandomcache.com/] &lt;br /&gt;
** Add the time, thereafter, of the URL&#039;s time (In seconds*) in cache: &lt;br /&gt;
*** Ex: U|[http://somerandomcache.com/%7C45 http://somerandomcache.com/|45] &lt;br /&gt;
* &#039;&#039;&#039;Example Cache Output (Beacon Cache) For get Command&#039;&#039;&#039; &lt;br /&gt;
** Example URL: [http://grantgalitz.com/Beacon/gwc.php?get=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;net=gnutella2&amp;amp;ping=1 http://grantgalitz.com/Beacon/gwc.php?get=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;net=gnutella2&amp;amp;ping=1] &lt;br /&gt;
*** Example &amp;quot;Get&amp;quot; Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Getting the hosts and urls with a pong combined&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| I|pong|Beacon Cache 0.1.5D Beta|gnutella-gnutella2H|65.9.200.243:4968|248261H|68.228.129.75:44599|242678H|98.240.196.122:8206|240719H|76.104.12.133:14921|218273H|69.136.1.12:3924|211610H|81.154.208.71:8595|174402H|97.96.105.51:2076|153610H|74.192.153.212:39340|144203H|72.190.106.57:12584|132984H|78.93.71.132:12334|125668H|82.43.248.184:27560|97974H|196.205.224.97:6357|86763H|74.129.219.30:33172|82005H|76.104.12.133:19185|57182H|69.59.83.131:18442|38628U|[http://www.k33bz.com/g2/bazooka.php%7C248639 http://www.k33bz.com/g2/bazooka.php|248639]U|[http://gwebcache.ns1.net/%7C248592 http://gwebcache.ns1.net/|248592]U|[http://gwc2.wodi.org/skulls.php%7C248384 http://gwc2.wodi.org/skulls.php|248384]U|[http://gwc.guufshop.com/skulls/skulls.php%7C248322 http://gwc.guufshop.com/skulls/skulls.php|248322]U|[http://groovy.syxy.com/up/skulls.php%7C248300 http://groovy.syxy.com/up/skulls.php|248300]U|[http://g2.tjtech.org/g2/index.php%7C247770 http://g2.tjtech.org/g2/index.php|247770]U|[http://midian.jayl.de/g2/bazooka.php%7C240719 http://midian.jayl.de/g2/bazooka.php|240719]U|[http://www.dom2porno.info/skulls/skulls.php%7C207473 http://www.dom2porno.info/skulls/skulls.php|207473]U|[http://gwc.frodoslair.net/skulls/skulls%7C125668 http://gwc.frodoslair.net/skulls/skulls|125668]U|[http://holograph.uni.cc/other/skulls.php%7C9642 http://holograph.uni.cc/other/skulls.php|9642] &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Variables&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Mandatory&#039;&#039;&#039; &lt;br /&gt;
** ping: &lt;br /&gt;
*** Main Part: I|pong| &lt;br /&gt;
*** Then add the cache name and version: I|pong|fakecache 0.01 &lt;br /&gt;
*** Then lastly add the network support: &lt;br /&gt;
**** I|pong|fakecache 0.01|gnutella &lt;br /&gt;
***** - Gnutella only &lt;br /&gt;
**** I|pong|fakecache 0.01|gnutella2 &lt;br /&gt;
***** - Gnutella2 only &lt;br /&gt;
**** I|pong|fakecache 0.01|gnutella-gnutella2 &lt;br /&gt;
***** - Gnutella and Gnutella2 served &lt;br /&gt;
** get: &lt;br /&gt;
*** Used by clients to requests alternate cache URLs along with IPs and their port numbers. &lt;br /&gt;
** update: &lt;br /&gt;
*** url: &lt;br /&gt;
**** Client update giving an alternate cache URL. &lt;br /&gt;
**** Formatted with a http:// prefix to each cache. &lt;br /&gt;
*** ip: &lt;br /&gt;
**** Client update giving one&#039;s IP to submit. &lt;br /&gt;
** net: &lt;br /&gt;
*** Which network to serve the client. &lt;br /&gt;
**** Gnutella &lt;br /&gt;
***** Ex: net=gnutella &lt;br /&gt;
**** Gnutella2 &lt;br /&gt;
***** Ex: net=gnutella2 &lt;br /&gt;
**** &#039;&#039;&#039;Should always be lowercase&#039;&#039;&#039; &lt;br /&gt;
***** GWCs should automatically convert network name given to lowercase to prevent Net ID mismatches &lt;br /&gt;
&lt;br /&gt;
solely on case alone. &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
* &lt;br /&gt;
** client: &lt;br /&gt;
*** Four letter code of the client. ex: RAZA &lt;br /&gt;
** version: &lt;br /&gt;
*** Version number of the client. &lt;br /&gt;
* &#039;&#039;&#039;Optional&#039;&#039;&#039; &lt;br /&gt;
** cluster: &lt;br /&gt;
*** To add extra info to an IP update. &lt;br /&gt;
**** Output by cache: H|0.0.0.0|AGE OF HOST (Seconds)|clustering some bull**** &lt;br /&gt;
** statfile: &lt;br /&gt;
*** Exactly like the specification 1 statfile &#039;&#039;&#039;(Same routine and output style)&#039;&#039;&#039;. &lt;br /&gt;
*** Statistics of the cache request: &lt;br /&gt;
**** First line: Total requests of the cache number. &lt;br /&gt;
**** Second line: Requests of the cache an hour number. &lt;br /&gt;
**** Third line: Updates of the cache an hour number. &lt;br /&gt;
&lt;br /&gt;
==== Specification 2.1 ====&lt;br /&gt;
&#039;&#039;&#039;This is an extension of specification 2, not a separate specification!&#039;&#039;&#039; &lt;br /&gt;
Pong extension &lt;br /&gt;
* Append the networks supported joined by a hyphen &#039;-&#039;. &lt;br /&gt;
* Used for client-side validation of networks supported and for network support reporting to other web caches. &lt;br /&gt;
* Format: &lt;br /&gt;
** I|pong|cache name|network names joined by &#039;-&#039; &lt;br /&gt;
** Format Examples: &lt;br /&gt;
*** I|pong|fakecache 0.01|gnutella &lt;br /&gt;
**** - Gnutella only &lt;br /&gt;
*** I|pong|fakecache 0.01|gnutella2 &lt;br /&gt;
**** - Gnutella2 only &lt;br /&gt;
*** I|pong|fakecache 0.01|gnutella-gnutella2 &lt;br /&gt;
**** - Gnutella and Gnutella2 served &lt;br /&gt;
Host Output &lt;br /&gt;
* Just like specification 2, but with more fields supported for host output. &lt;br /&gt;
** H|ip:port|age in cache|clustering|leaves|4 letter vendor code|reported uptime of host|max. leaves possible &lt;br /&gt;
*** The host, age, and clustering fields are all still the same as in specification 2. &lt;br /&gt;
*** The leaf count of the hub reported is in the 5th field. &lt;br /&gt;
*** The vendor code with version number is in the 6th field. &lt;br /&gt;
Request Control Variables: &lt;br /&gt;
* getleaves &lt;br /&gt;
** Used to obtain leaf counts of hubs given &lt;br /&gt;
** 4th field ultilized for current leaf count. &lt;br /&gt;
** 7th field ultilized for maximum leaf slots possible. &lt;br /&gt;
** Use this as &#039;getleaves=1&#039; or &#039;getleaves&#039; to enable. &lt;br /&gt;
* getclusters &lt;br /&gt;
** Enables/Disables clustering. &lt;br /&gt;
** Use this as &#039;getclusters=1&#039;. &lt;br /&gt;
** Using &#039;getclusters&#039; or &#039;getclusters=0&#039; disables cluster output. &lt;br /&gt;
* getvendors &lt;br /&gt;
** Used to obtain the vendor code w/ version number of the hubs given. &lt;br /&gt;
** Found in the 5th field. &lt;br /&gt;
** Use this as &#039;getvendors=1&#039; or &#039;getvendors&#039; to enable. &lt;br /&gt;
* getuptime &lt;br /&gt;
** Used to obtain the vendor code w/ version number of the hubs given. &lt;br /&gt;
** Value is static, do not change the value given when time passes. &lt;br /&gt;
** Found in the 6th field. &lt;br /&gt;
** Use this as &#039;getuptime=1&#039; or &#039;getuptime&#039; to enable. &lt;br /&gt;
* spec &lt;br /&gt;
** To force the specification parameter &lt;br /&gt;
** Currently is only supported by Beacon Cache II &lt;br /&gt;
* pv &lt;br /&gt;
** Similar to the &#039;spec&#039; parameter, except that it does not force, instead it simply negotiates the specification. &lt;br /&gt;
Special Data Requests &lt;br /&gt;
* info &lt;br /&gt;
** Outputs extra details of your cache. &lt;br /&gt;
*** Start with the informational response: I| &lt;br /&gt;
**** Ex: I|open-source|1 &lt;br /&gt;
* support &lt;br /&gt;
** Outputs USEFUL details of your cache. &lt;br /&gt;
*** Start with the informational response: I| &lt;br /&gt;
**** Ex: I|support|gnutella2 &lt;br /&gt;
* getnetworks &lt;br /&gt;
** Outputs the enabled networks in two formats. &lt;br /&gt;
*** Start with the informational response: I| &lt;br /&gt;
**** For the &#039;I|nets|&#039; line &lt;br /&gt;
***** The third field contains the supported networks joined by &#039;-&#039;. &lt;br /&gt;
**** For the &#039;I|networks|&#039; line &lt;br /&gt;
***** Interpret the fields from 3 and beyond as individual network names to challenge against. &lt;br /&gt;
*** Examples &lt;br /&gt;
**** &lt;br /&gt;
***** I|net|gnutella-gnutella2 &lt;br /&gt;
***** I|networks|gnutella|gnutella2 &lt;br /&gt;
Update Extension Variables: &lt;br /&gt;
* x_leaves &lt;br /&gt;
** Number of leaves running on a given hub or ultrapeer. &lt;br /&gt;
** &#039;&#039;&#039;Value must not be greater than an integer value of 2047.&#039;&#039;&#039; &lt;br /&gt;
* x_max &lt;br /&gt;
** Maximum number of leaves possible on a given hub or ultrapeer. &lt;br /&gt;
** &#039;&#039;&#039;Value must not be greater than an integer value of 2047.&#039;&#039;&#039; &lt;br /&gt;
* uptime &lt;br /&gt;
** Value submitted must be an integer value of the number of seconds of uptime. &lt;br /&gt;
** &#039;&#039;&#039;Value must not be greater than an integer value of 1 year (31536000) and less than 1 hour (60).&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== Pinging Caches With Your Cache ===&lt;br /&gt;
&#039;&#039;&#039;Please follow this standard:&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Client: TEST&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Version: Your Cache&#039;s Name&#039;&#039;&#039; &lt;br /&gt;
** The old value for &amp;quot;version&amp;quot; was 1 &lt;br /&gt;
&#039;&#039;&#039;Some variables to attach to the ping (compatibility):&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;multi&#039;&#039;&#039; &lt;br /&gt;
** Used by some gwcs in their pings to other gwcs. &lt;br /&gt;
** &amp;lt;nowiki&amp;gt;It tells the pinged cache to ignore the &amp;quot;net&amp;quot; parameter (so it should never say network not supported) and outputting the pong using this format, if possible, &amp;quot;I|pong|[cache name] [cache version]|[supported networks list]&amp;quot; - example: I|pong|Skulls 0.2.9|gnutella-gnutella2 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
** Used by Skulls GWC only, supported by Skulls and Beacon Cache II. &lt;br /&gt;
* &#039;&#039;&#039;cache&#039;&#039;&#039; &lt;br /&gt;
** This is added to every request made by some gwcs, it is for statistical purposes only. &lt;br /&gt;
** It simply tells the remote cache that the client is a GWC. &lt;br /&gt;
&#039;&#039;&#039;Help&#039;&#039;&#039; &lt;br /&gt;
* For PHP &lt;br /&gt;
** Use the fsockopen() function to open a connection to a cache. &lt;br /&gt;
*** Make sure you &amp;quot;write&amp;quot; to the fsockopen carry value to open the GWC&#039;s target file. &lt;br /&gt;
**** [http://us.php.net/manual/en/function.fsockopen.php http://us.php.net/manual/en/function.fsockopen.php] &lt;br /&gt;
&lt;br /&gt;
=== Variable Combination Standards ===&lt;br /&gt;
&#039;&#039;&#039;Net variable decides specification!&#039;&#039;&#039; &lt;br /&gt;
* There are many ways to determine spec., but going with net is the safe way. &lt;br /&gt;
* Skulls GWC does not use the network parameter to determine specification level. &lt;br /&gt;
* Beacon Cache (I and II) uses the network parameter to determine the specification level. &lt;br /&gt;
&#039;&#039;&#039;Your cache needs to be able to process certain combinations of variables.&#039;&#039;&#039; &lt;br /&gt;
* Update variable &lt;br /&gt;
** Update should not fail if absent if spec. 2. &lt;br /&gt;
*** A Specification 2 parameter. &lt;br /&gt;
Spec 1 parameters used in Spec 2: &lt;br /&gt;
* Should still accept hostfile and urlfile responses for spec. 2. &lt;br /&gt;
** Beacon Cache (I and II) accepts these parameters on spec 2. &lt;br /&gt;
The &#039;spec&#039; paameter can be used to force a specification: &lt;br /&gt;
* Only known to exist in Beacon Cache II, it can force the request to be handled as a specification 1 or 2 request. &lt;br /&gt;
* Spec 1 = &#039;spec=1&#039; &lt;br /&gt;
* Spec 2 = &#039;spec=2&#039; &lt;br /&gt;
* If &#039;spec&#039; is not equal to any current spec, then default to the predetermined spec. &lt;br /&gt;
&#039;&#039;&#039;Multiple variable requests&#039;&#039;&#039; &lt;br /&gt;
* If for instance a ping and request exist, you should always handle them properly. &lt;br /&gt;
** Same goes with other combos like an update and ping, statfile + ping and info. &lt;br /&gt;
* Handle multiple variables as BEST as possible! &lt;br /&gt;
** Some scanners and GWCs like to fit all their requests into one URL send. &lt;br /&gt;
&lt;br /&gt;
=== Further Information: ===&lt;br /&gt;
* [http://www.gnucleus.com/gwebcache/ Original GWC] [http://www.gnucleus.com/gwebcache/ site] &lt;br /&gt;
** [http://gnucleus.sourceforge.net/gwebcache/specs.html GWC Spec. 1] &lt;br /&gt;
** [http://gnucleus.sourceforge.net/gwebcache/newgwc.html GWC Spec. 2] &lt;br /&gt;
&lt;br /&gt;
=== Gnutella Web Cache ===&lt;br /&gt;
Gnutella requires Gnutella Web Caches (GWC) to get IPs to establish a connection to the network.  These are critical to ensuring the health of the network.  If you have a dedicated server and can spare some extra bandwidth then please consider running a GWC.  People that don&#039;t have a dedicated server or are on normal broadband consumer lines should not run a cache from home.&lt;br /&gt;
&lt;br /&gt;
A GWC is a simple script that can be put on any webserver that supports one of the following scripting languages:&lt;br /&gt;
*JSP (Java Servlet)&lt;br /&gt;
**[http://web.archive.org/web/20061108091447/http://www.mager.org/GWebCache/ Java Servlet GWebCache Application (Archive.org)]&lt;br /&gt;
*C&lt;br /&gt;
**[http://ghostwhitecrab.com/crab/ GhostWhiteCrab]&lt;br /&gt;
*Perl &lt;br /&gt;
**[http://www.jonatkins.com/perlgcache/ Jon Atkins&#039; perlgcache] &lt;br /&gt;
**The original [http://www.gnucleus.com/gwebcache/dist/ GnuWebCache]&lt;br /&gt;
*PHP &lt;br /&gt;
**[http://gwcii.sourceforge.net/ PHPGnuCacheII] - MySQL&lt;br /&gt;
**[http://www.bazookanetworks.com Bazooka G2WC] (recommended) - flat files&lt;br /&gt;
**[http://sourceforge.net/projects/skulls/ Skulls! Multi-Network WebCache] - flat files&lt;br /&gt;
====Further Information:====&lt;br /&gt;
*[http://www.gnucleus.com/gwebcache/|Original GWC site]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{RecoveredPage|--&amp;gt;Saved in timestamp 20090421202728Retrieved from &amp;quot;[https://www.pantheraproject.net/wiki/index.php?title=GWC This page was last modified on April 18, 2009, at 23:25. &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;Copyright © 2002-2009 Shareaza Development Team. &amp;lt;/center&amp;gt;&amp;lt;center&amp;gt;[[Image:poweredby_mediawiki_88x31.png]] --[[User:Ocexyz|Ocexyz]] 16:20, 27 July 2009 (UTC)}}&lt;br /&gt;
&lt;br /&gt;
{{RecoveredPage|Warninig: here ends pasted better formatted recovery. Row recovery has been mooved below as I don&#039;t know if anybody has made any changes in it. If not then row recovery can be deleted I suppose. Paste starts from == Shareaza Specific Details == and ends at second == Shareaza Specific Details ==, here. I hope it is visible.  --[[User:Ocexyz|Ocexyz]] 16:20, 27 July 2009 (UTC)  }}&lt;br /&gt;
&lt;br /&gt;
==Shareaza Specific Details==&lt;br /&gt;
&lt;br /&gt;
{{RecoveredPage|Warninig: here ends pasted better formatted recovery. Row recovery has been mooved below as I don&#039;t know if anybody has made any changes in it. If not then row recovery can be deleted I suppose. Paste starts from &amp;gt;&amp;gt;Shareaza Specific Details&amp;lt;&amp;lt; and ends at second &amp;gt;&amp;gt; Shareaza Specific Details&amp;lt;&amp;lt;, here. I hope it is visible.  --[[User:Ocexyz|Ocexyz]] 23:27, 27 July 2009 (UTC)  }}&lt;br /&gt;
&lt;br /&gt;
* Get String Breakdown:&lt;br /&gt;
          o Update a leaf&lt;br /&gt;
                + &amp;quot;?update=1&amp;amp;ip=(ip):(port)&amp;amp;x_leaves=(leaf count) &lt;br /&gt;
          o Ping Variable&lt;br /&gt;
                + Appends &amp;amp;ping=1 to identify the cache name in debug messages (for gnutella and gnutella2 in 2.4.0.0, but only for gnutella2 now in 2.4.0.X for spec1 cache compatibility).&lt;br /&gt;
                + This feature new to Shareaza. &lt;br /&gt;
          o Network Variable&lt;br /&gt;
                + Appends &amp;amp;net=gnutella2 on Gnutella2 queries.&lt;br /&gt;
                + Does NOT append a network variable on Gnutella(1) queries. &lt;br /&gt;
          o Client Name / Version Format (2.4.0.0 and earlier):&lt;br /&gt;
                + &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) )&lt;br /&gt;
                + &amp;amp;version=(Shareaza&#039;s version) &lt;br /&gt;
          o Client Name / Version Format (2.4.0.X):&lt;br /&gt;
                + If Gnutella&lt;br /&gt;
                      # &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) )&lt;br /&gt;
                      # &amp;amp;version=(Shareaza&#039;s version) &lt;br /&gt;
                + If Gnutella2&lt;br /&gt;
                      # &amp;amp;client=(Shareaza 4 letter code (RAZA / RAZB) )+(Shareaza&#039;s version) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* GWC Response Matching:&lt;br /&gt;
          o i|&lt;br /&gt;
                + Informational output alone will not be taken as GWC &#039;success.&#039; &lt;br /&gt;
          o i|access|period|(time in sec.)&lt;br /&gt;
                + Time in seconds before Shareaza is allowed to make a request to the cache. &lt;br /&gt;
          o i|update|period|(time in sec.)&lt;br /&gt;
                + Time in seconds before Shareaza is allowed to update to the cache. &lt;br /&gt;
          o i|force|remove and i|update|warning|bad url&lt;br /&gt;
                + Remove the GWC from the internal list. &lt;br /&gt;
          o Some Response Matches (added in 2.3.1.X)&lt;br /&gt;
                + i|NO-URL-NO-HOSTS&lt;br /&gt;
                      # Outputs warning of the cache being totally empty to the system log. &lt;br /&gt;
                + i|NO-URL&lt;br /&gt;
                      # Outputs warning of the cache having no alternative URLs to the system log. &lt;br /&gt;
                + i|NO-HOSTS&lt;br /&gt;
                      # Outputs warning of the cache having no hosts to the system log. &lt;br /&gt;
                + i|warning|&lt;br /&gt;
                      # Outputs warning of the cache to the system log. &lt;br /&gt;
                + ERROR Something Failed&lt;br /&gt;
                      # Outputs warning of the cache to the system log(Buggy Bazooka GWCs workaround). &lt;br /&gt;
                + i|warning|You came back too early (2.3.1.X)&lt;br /&gt;
                + i|warning|client|early (2.3.1.X)&lt;br /&gt;
                + WARNING: You came back too early (2.3.1.X)&lt;br /&gt;
                + ERROR: Client returned too early (2.3.1.X)&lt;br /&gt;
                      # Flood detection for the update side.&lt;br /&gt;
                      # Outputs GWebCache(update) Too many connection attempts to the system log. &lt;br /&gt;
                + too early (2.3.1.X)&lt;br /&gt;
                + early (2.4.0.X)&lt;br /&gt;
                      # Flood detection for the request side.&lt;br /&gt;
                      # Outputs GWebCache URL: Too many connection attempts to the system log. &lt;br /&gt;
                + i|update|OK&lt;br /&gt;
                      # Outputs &amp;quot;GWebCache(v2) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
                + OK&lt;br /&gt;
                      # Outputs &amp;quot;GWebCache(v1) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* GWC Response Matching:&lt;br /&gt;
          o i|&lt;br /&gt;
                + Informational output alone will not be taken as GWC &#039;success.&#039; &lt;br /&gt;
          o i|access|period|(time in sec.)&lt;br /&gt;
                + Time in seconds before Shareaza is allowed to make a request to the cache. &lt;br /&gt;
          o i|update|period|(time in sec.)&lt;br /&gt;
                + Time in seconds before Shareaza is allowed to update to the cache. &lt;br /&gt;
          o i|force|remove and i|update|warning|bad url&lt;br /&gt;
                + Remove the GWC from the internal list. &lt;br /&gt;
          o Some Response Matches (added in 2.3.1.X)&lt;br /&gt;
                + i|NO-URL-NO-HOSTS&lt;br /&gt;
                      # Outputs warning of the cache being totally empty to the system log. &lt;br /&gt;
                + i|NO-URL&lt;br /&gt;
                      # Outputs warning of the cache having no alternative URLs to the system log. &lt;br /&gt;
                + i|NO-HOSTS&lt;br /&gt;
                      # Outputs warning of the cache having no hosts to the system log. &lt;br /&gt;
                + i|warning|&lt;br /&gt;
                      # Outputs warning of the cache to the system log. &lt;br /&gt;
                + ERROR Something Failed&lt;br /&gt;
                      # Outputs warning of the cache to the system log(Buggy Bazooka GWCs workaround). &lt;br /&gt;
                + i|warning|You came back too early (2.3.1.X)&lt;br /&gt;
                + i|warning|client|early (2.3.1.X)&lt;br /&gt;
                + WARNING: You came back too early (2.3.1.X)&lt;br /&gt;
                + ERROR: Client returned too early (2.3.1.X)&lt;br /&gt;
                      # Flood detection for the update side.&lt;br /&gt;
                      # Outputs GWebCache(update) Too many connection attempts to the system log. &lt;br /&gt;
                + too early (2.3.1.X)&lt;br /&gt;
                + early (2.4.0.X)&lt;br /&gt;
                      # Flood detection for the request side.&lt;br /&gt;
                      # Outputs GWebCache URL: Too many connection attempts to the system log. &lt;br /&gt;
                + i|update|OK&lt;br /&gt;
                      # Outputs &amp;quot;GWebCache(v2) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
                + OK&lt;br /&gt;
                      # Outputs &amp;quot;GWebCache(v1) Update Passed: &amp;quot; to the system log. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Gnutella Web Cache Specifications==&lt;br /&gt;
&amp;lt;end of partial recovery by OCE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;end of recovered content&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;row recovery, start&amp;gt; &lt;br /&gt;
 Specification 1:&lt;br /&gt;
&lt;br /&gt;
    * Networks Served&lt;br /&gt;
          o Gnutella &lt;br /&gt;
    * Format&lt;br /&gt;
          o Update went fine:&lt;br /&gt;
                + Ex: OK &lt;br /&gt;
          o Update Warning (Small prob., not that bad):&lt;br /&gt;
                + Ex: &lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
WARNING: Error Message&lt;br /&gt;
&lt;br /&gt;
    * Severe Warning (No &#039;OK&#039; message sent)&lt;br /&gt;
          o Ex: &lt;br /&gt;
&lt;br /&gt;
WARNING: Error Message&lt;br /&gt;
&lt;br /&gt;
    * URL Output:&lt;br /&gt;
          o Ex: http://somefreakinrandomcache.com/cache/gcache.php&lt;br /&gt;
                + OR - WITH A PORT NUMBER (If not 80)&lt;br /&gt;
                      # Ex: http://somefreakinrandomcache.com:8080/cache/gcache.php &lt;br /&gt;
    * Host Output:&lt;br /&gt;
          o Ex: 66.132.55.12:6346 &lt;br /&gt;
    * Pong (ping variable response) - was explained below under the topic: variables.&lt;br /&gt;
    * Example Cache Output (Beacon Cache) For urlfile Command&lt;br /&gt;
          o Example &amp;quot;urlfile Output&amp;quot; URL: Ex: http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;urlfile=1&lt;br /&gt;
                + Example URL Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting urls with a pong combined&lt;br /&gt;
&lt;br /&gt;
PONG Beacon Cache 0.1.5D Beta&lt;br /&gt;
http://gwc.frodoslair.net/skulls/skulls.php&lt;br /&gt;
http://bbs.robertwoolley.co.uk/GWebCache/gcache.php&lt;br /&gt;
http://g2.tjtech.org/g2/&lt;br /&gt;
http://g2.tjtech.org/g2/index.php&lt;br /&gt;
http://gwc.monnsta.net/&lt;br /&gt;
http://holograph.uni.cc/other/skulls.php&lt;br /&gt;
http://gwc.nickstallman.net/&lt;br /&gt;
http://gwc.eod.cc/skulls.php&lt;br /&gt;
http://gwc.frodoslair.net/skulls/skulls&lt;br /&gt;
http://gwc.werwin.net/skulls.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * Example Cache Output (Beacon Cache) For hostfile Command&lt;br /&gt;
          o Example &amp;quot;hostfile Output&amp;quot; URL: Ex: http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;hostfile=1&lt;br /&gt;
                + Example Host Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting the hosts with a pong combined&lt;br /&gt;
&lt;br /&gt;
PONG Beacon Cache 0.1.5D Beta&lt;br /&gt;
71.8.84.153:3915&lt;br /&gt;
99.248.214.157:27529&lt;br /&gt;
69.60.241.55:16369&lt;br /&gt;
193.253.239.246:30218&lt;br /&gt;
68.156.175.121:6348&lt;br /&gt;
71.179.7.241:18344&lt;br /&gt;
74.196.22.241:6348&lt;br /&gt;
12.210.197.194:10531&lt;br /&gt;
222.150.143.77:10000&lt;br /&gt;
58.85.231.135:6346&lt;br /&gt;
24.141.199.164:20205&lt;br /&gt;
72.175.201.195:6348&lt;br /&gt;
69.81.129.228:4880&lt;br /&gt;
97.81.221.63:13219&lt;br /&gt;
70.15.130.224:7759&lt;br /&gt;
216.211.188.106:51903&lt;br /&gt;
75.167.168.156:48660&lt;br /&gt;
12.214.14.3:35916&lt;br /&gt;
76.177.244.106:24180&lt;br /&gt;
98.165.218.139:39630&lt;br /&gt;
68.112.182.125:3685&lt;br /&gt;
68.117.204.57:23482&lt;br /&gt;
65.12.154.25:40760&lt;br /&gt;
69.180.47.169:5711&lt;br /&gt;
75.138.40.173:24987&lt;br /&gt;
98.201.19.0:33662&lt;br /&gt;
70.187.2.144:6348&lt;br /&gt;
68.186.209.107:14429&lt;br /&gt;
69.159.7.61:6348&lt;br /&gt;
76.208.176.196:48199&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * For combining a hostfile and urlfile request:&lt;br /&gt;
          o Warning: This is non-standard.&lt;br /&gt;
          o Example Cache Output (Beacon Cache) For bfile Command&lt;br /&gt;
                + Example &amp;quot;bfile Output&amp;quot; URL: Ex: http://grantgalitz.com/Beacon/gwc.php?ping=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;bfile=1&lt;br /&gt;
                      # Example Host and URL Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting the hosts and urls with a pong combined&lt;br /&gt;
&lt;br /&gt;
PONG Beacon Cache 0.1.5D Beta&lt;br /&gt;
71.8.84.153:3915&lt;br /&gt;
99.248.214.157:27529&lt;br /&gt;
69.60.241.55:16369&lt;br /&gt;
193.253.239.246:30218&lt;br /&gt;
68.156.175.121:6348&lt;br /&gt;
71.179.7.241:18344&lt;br /&gt;
74.196.22.241:6348&lt;br /&gt;
12.210.197.194:10531&lt;br /&gt;
222.150.143.77:10000&lt;br /&gt;
58.85.231.135:6346&lt;br /&gt;
24.141.199.164:20205&lt;br /&gt;
72.175.201.195:6348&lt;br /&gt;
69.81.129.228:4880&lt;br /&gt;
97.81.221.63:13219&lt;br /&gt;
70.15.130.224:7759&lt;br /&gt;
216.211.188.106:51903&lt;br /&gt;
75.167.168.156:48660&lt;br /&gt;
12.214.14.3:35916&lt;br /&gt;
76.177.244.106:24180&lt;br /&gt;
98.165.218.139:39630&lt;br /&gt;
68.112.182.125:3685&lt;br /&gt;
68.117.204.57:23482&lt;br /&gt;
65.12.154.25:40760&lt;br /&gt;
69.180.47.169:5711&lt;br /&gt;
75.138.40.173:24987&lt;br /&gt;
98.201.19.0:33662&lt;br /&gt;
70.187.2.144:6348&lt;br /&gt;
68.186.209.107:14429&lt;br /&gt;
69.159.7.61:6348&lt;br /&gt;
76.208.176.196:48199&lt;br /&gt;
http://gwc.frodoslair.net/skulls/skulls.php&lt;br /&gt;
http://bbs.robertwoolley.co.uk/GWebCache/gcache.php&lt;br /&gt;
http://g2.tjtech.org/g2/&lt;br /&gt;
http://g2.tjtech.org/g2/index.php&lt;br /&gt;
http://gwc.monnsta.net/&lt;br /&gt;
http://holograph.uni.cc/other/skulls.php&lt;br /&gt;
http://gwc.nickstallman.net/&lt;br /&gt;
http://gwc.eod.cc/skulls.php&lt;br /&gt;
http://gwc.frodoslair.net/skulls/skulls&lt;br /&gt;
http://gwc.werwin.net/skulls.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * Variables&lt;br /&gt;
          o Mandatory&lt;br /&gt;
                + ping:&lt;br /&gt;
                      # Response should have this always: PONG&lt;br /&gt;
                      # After, put the cache&#039;s name. ex: PONG fakecache 0.01&lt;br /&gt;
                + client:&lt;br /&gt;
                      # Four letter code of the client. ex: RAZA &lt;br /&gt;
                + version:&lt;br /&gt;
                      # Version number of the client. &lt;br /&gt;
                + urlfile:&lt;br /&gt;
                      # Used by the client to request alternate cache urls. &lt;br /&gt;
                + hostfile:&lt;br /&gt;
                      # Used by the client to request IPs with port numbers attached. &lt;br /&gt;
                + url:&lt;br /&gt;
                      # Client update giving an alternate cache URL.&lt;br /&gt;
                      # Formatted with a http:// prefix to each cache. &lt;br /&gt;
                + ip:&lt;br /&gt;
                      # Client update giving one&#039;s IP to submit. &lt;br /&gt;
                + url1:&lt;br /&gt;
                      # OLD OUTDATED Client update giving an alternate cache URL.&lt;br /&gt;
                      # Formatted with a http:// prefix to each cache. &lt;br /&gt;
                + ip1:&lt;br /&gt;
                      # OLD OUTDATED Client update giving one&#039;s IP to submit. &lt;br /&gt;
          o Optional&lt;br /&gt;
                + bfile:&lt;br /&gt;
                      # For clients to request both URLs and IPs from the cache at the same time. &lt;br /&gt;
                + statfile:&lt;br /&gt;
                      # Statistics of the cache request:&lt;br /&gt;
                            * First line: Total requests of the cache number.&lt;br /&gt;
                            * Second line: Requests of the cache an hour number.&lt;br /&gt;
                            * Third line: Updates of the cache an hour number. &lt;br /&gt;
&lt;br /&gt;
Specification 2:&lt;br /&gt;
&lt;br /&gt;
    * Networks Served&lt;br /&gt;
          o Gnutella, Gnutella2, etc. &lt;br /&gt;
    * Format&lt;br /&gt;
          o Information Output&lt;br /&gt;
                + Starts with: I|&lt;br /&gt;
                      # Categories&lt;br /&gt;
                            * Pong (ping variable response) - Described below under the topic: variables.&lt;br /&gt;
                            * Update Status Response&lt;br /&gt;
                                  o Format: I|update&lt;br /&gt;
                                  o Responses&lt;br /&gt;
                                        + I|update|OK&lt;br /&gt;
                                              # - Everything went fine. &lt;br /&gt;
                                        + I|update|OK|WARNING&lt;br /&gt;
                                              # Small warning. &lt;br /&gt;
                                        + I|update|WARNING&lt;br /&gt;
                                              # Severe warning &lt;br /&gt;
                            * Plain Warnings&lt;br /&gt;
                                  o Format: I|WARNING&lt;br /&gt;
                                        + Append any warning messages after it - Ex: I|WARNING|You came back too early &lt;br /&gt;
                            * Extra Info - Described below under the topic: variables. &lt;br /&gt;
          o Host Output&lt;br /&gt;
                + Starts with: H|&lt;br /&gt;
                + Add the IP with its port:&lt;br /&gt;
                      # Ex: H|0.0.0.0:6346 &lt;br /&gt;
                + Add the time, thereafter, of the host&#039;s (In seconds*) time in cache:&lt;br /&gt;
                      # Ex: H|0.0.0.0:6346|45 &lt;br /&gt;
                + If cluster exists with cluster=somerandomwords&lt;br /&gt;
                      # Add the clustered words after the host&#039;s age:&lt;br /&gt;
                            * Ex: H|0.0.0.0:6346|45|somerandomwords &lt;br /&gt;
          o URL Output&lt;br /&gt;
                + Starts with: U|&lt;br /&gt;
                + Add the URL with http:// before it, plus the port (if it&#039;s not 80).&lt;br /&gt;
                      # Ex: U|http://somerandomcache.com/ &lt;br /&gt;
                + Add the time, thereafter, of the URL&#039;s time (In seconds*) in cache:&lt;br /&gt;
                      # Ex: U|http://somerandomcache.com/|45 &lt;br /&gt;
          o Example Cache Output (Beacon Cache) For get Command&lt;br /&gt;
                + Example URL: http://grantgalitz.com/Beacon/gwc.php?get=1&amp;amp;client=RAZA&amp;amp;version=2.3.1.3&amp;amp;net=gnutella2&amp;amp;ping=1&lt;br /&gt;
                      # Example &amp;quot;Get&amp;quot; Output: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Getting the hosts and urls with a pong combined&lt;br /&gt;
&lt;br /&gt;
I|pong|Beacon Cache 0.1.5D Beta|gnutella-gnutella2&lt;br /&gt;
H|65.9.200.243:4968|248261&lt;br /&gt;
H|68.228.129.75:44599|242678&lt;br /&gt;
H|98.240.196.122:8206|240719&lt;br /&gt;
H|76.104.12.133:14921|218273&lt;br /&gt;
H|69.136.1.12:3924|211610&lt;br /&gt;
H|81.154.208.71:8595|174402&lt;br /&gt;
H|97.96.105.51:2076|153610&lt;br /&gt;
H|74.192.153.212:39340|144203&lt;br /&gt;
H|72.190.106.57:12584|132984&lt;br /&gt;
H|78.93.71.132:12334|125668&lt;br /&gt;
H|82.43.248.184:27560|97974&lt;br /&gt;
H|196.205.224.97:6357|86763&lt;br /&gt;
H|74.129.219.30:33172|82005&lt;br /&gt;
H|76.104.12.133:19185|57182&lt;br /&gt;
H|69.59.83.131:18442|38628&lt;br /&gt;
U|http://www.k33bz.com/g2/bazooka.php|248639&lt;br /&gt;
U|http://gwebcache.ns1.net/|248592&lt;br /&gt;
U|http://gwc2.wodi.org/skulls.php|248384&lt;br /&gt;
U|http://gwc.guufshop.com/skulls/skulls.php|248322&lt;br /&gt;
U|http://groovy.syxy.com/up/skulls.php|248300&lt;br /&gt;
U|http://g2.tjtech.org/g2/index.php|247770&lt;br /&gt;
U|http://midian.jayl.de/g2/bazooka.php|240719&lt;br /&gt;
U|http://www.dom2porno.info/skulls/skulls.php|207473&lt;br /&gt;
U|http://gwc.frodoslair.net/skulls/skulls|125668&lt;br /&gt;
U|http://holograph.uni.cc/other/skulls.php|9642&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    * Variables&lt;br /&gt;
          o Mandatory&lt;br /&gt;
                + ping:&lt;br /&gt;
                      # Main Part: I|pong|&lt;br /&gt;
                      # Then add the cache name and version: I|pong|fakecache 0.01&lt;br /&gt;
                      # Then lastly add the network support:&lt;br /&gt;
                            * I|pong|fakecache 0.01|gnutella&lt;br /&gt;
                                  o - Gnutella only &lt;br /&gt;
                            * I|pong|fakecache 0.01|gnutella2&lt;br /&gt;
                                  o - Gnutella2 only &lt;br /&gt;
                            * I|pong|fakecache 0.01|gnutella-gnutella2&lt;br /&gt;
                                  o - Gnutella and Gnutella2 served &lt;br /&gt;
                + get:&lt;br /&gt;
                      # Used by clients to requests alternate cache URLs along with IPs and their port numbers. &lt;br /&gt;
                + update:&lt;br /&gt;
                      # url:&lt;br /&gt;
                            * Client update giving an alternate cache URL.&lt;br /&gt;
                            * Formatted with a http:// prefix to each cache. &lt;br /&gt;
                      # ip:&lt;br /&gt;
                            * Client update giving one&#039;s IP to submit. &lt;br /&gt;
                + net:&lt;br /&gt;
                      # Which network to serve the client.&lt;br /&gt;
                            * Gnutella&lt;br /&gt;
                                  o Ex: net=gnutella &lt;br /&gt;
                            * Gnutella2&lt;br /&gt;
                                  o Ex: net=gnutella2 &lt;br /&gt;
                            * Should always be lowercase&lt;br /&gt;
                                  o GWCs should automatically convert network name given to lowercase to prevent Net ID mismatches &lt;br /&gt;
&lt;br /&gt;
solely on case alone.&lt;br /&gt;
&lt;br /&gt;
    *&lt;br /&gt;
          o&lt;br /&gt;
                + client:&lt;br /&gt;
                      # Four letter code of the client. ex: RAZA &lt;br /&gt;
                + version:&lt;br /&gt;
                      # Version number of the client. &lt;br /&gt;
          o Optional&lt;br /&gt;
                + cluster:&lt;br /&gt;
                      # To add extra info to an IP update.&lt;br /&gt;
                            * Output by cache: H|0.0.0.0|AGE OF HOST (Seconds)|clustering some bull**** &lt;br /&gt;
                + statfile:&lt;br /&gt;
                      # Exactly like the specification 1 statfile (Same routine and output style).&lt;br /&gt;
                      # Statistics of the cache request:&lt;br /&gt;
                            * First line: Total requests of the cache number.&lt;br /&gt;
                            * Second line: Requests of the cache an hour number.&lt;br /&gt;
                            * Third line: Updates of the cache an hour number. &lt;br /&gt;
&lt;br /&gt;
Specification 2.1&lt;br /&gt;
&lt;br /&gt;
    * This is an extension of specification 2, not a separate specification!&lt;br /&gt;
    * Pong extension&lt;br /&gt;
          o Append the networks supported joined by a hyphen &#039;-&#039;.&lt;br /&gt;
          o Used for client-side validation of networks supported and for network support reporting to other web caches.&lt;br /&gt;
          o Format:&lt;br /&gt;
                + I|pong|cache name|network names joined by &#039;-&#039;&lt;br /&gt;
                + Format Examples:&lt;br /&gt;
                      # I|pong|fakecache 0.01|gnutella&lt;br /&gt;
                            * - Gnutella only &lt;br /&gt;
                      # I|pong|fakecache 0.01|gnutella2&lt;br /&gt;
                            * - Gnutella2 only &lt;br /&gt;
                      # I|pong|fakecache 0.01|gnutella-gnutella2&lt;br /&gt;
                            * - Gnutella and Gnutella2 served &lt;br /&gt;
    * Host Output&lt;br /&gt;
          o Just like specification 2, but with more fields supported for host output.&lt;br /&gt;
                + H|ip:port|age in cache|clustering|leaves|4 letter vendor code|reported uptime of host|max. leaves possible&lt;br /&gt;
                      # The host, age, and clustering fields are all still the same as in specification 2.&lt;br /&gt;
                      # The leaf count of the hub reported is in the 5th field.&lt;br /&gt;
                      # The vendor code with version number is in the 6th field. &lt;br /&gt;
    * Request Control Variables:&lt;br /&gt;
          o getleaves&lt;br /&gt;
                + Used to obtain leaf counts of hubs given&lt;br /&gt;
                + 4th field ultilized for current leaf count.&lt;br /&gt;
                + 7th field ultilized for maximum leaf slots possible.&lt;br /&gt;
                + Use this as &#039;getleaves=1&#039; or &#039;getleaves&#039; to enable. &lt;br /&gt;
          o getclusters&lt;br /&gt;
                + Enables/Disables clustering.&lt;br /&gt;
                + Use this as &#039;getclusters=1&#039;.&lt;br /&gt;
                + Using &#039;getclusters&#039; or &#039;getclusters=0&#039; disables cluster output. &lt;br /&gt;
          o getvendors&lt;br /&gt;
                + Used to obtain the vendor code w/ version number of the hubs given.&lt;br /&gt;
                + Found in the 5th field.&lt;br /&gt;
                + Use this as &#039;getvendors=1&#039; or &#039;getvendors&#039; to enable. &lt;br /&gt;
          o getuptime&lt;br /&gt;
                + Used to obtain the vendor code w/ version number of the hubs given.&lt;br /&gt;
                + Value is static, do not change the value given when time passes.&lt;br /&gt;
                + Found in the 6th field.&lt;br /&gt;
                + Use this as &#039;getuptime=1&#039; or &#039;getuptime&#039; to enable. &lt;br /&gt;
          o spec&lt;br /&gt;
                + To force the specification parameter&lt;br /&gt;
                + Currently is only supported by Beacon Cache II &lt;br /&gt;
          o pv&lt;br /&gt;
                + Similar to the &#039;spec&#039; parameter, except that it does not force, instead it simply negotiates the specification. &lt;br /&gt;
    * Special Data Requests&lt;br /&gt;
          o info&lt;br /&gt;
                + Outputs extra details of your cache.&lt;br /&gt;
                      # Start with the informational response: I|&lt;br /&gt;
                            * Ex: I|open-source|1 &lt;br /&gt;
          o support&lt;br /&gt;
                + Outputs USEFUL details of your cache.&lt;br /&gt;
                      # Start with the informational response: I|&lt;br /&gt;
                            * Ex: I|support|gnutella2 &lt;br /&gt;
          o getnetworks&lt;br /&gt;
                + Outputs the enabled networks in two formats.&lt;br /&gt;
                      # Start with the informational response: I|&lt;br /&gt;
                            * For the &#039;I|nets|&#039; line&lt;br /&gt;
                                  o The third field contains the supported networks joined by &#039;-&#039;. &lt;br /&gt;
                            * For the &#039;I|networks|&#039; line&lt;br /&gt;
                                  o Interpret the fields from 3 and beyond as individual network names to challenge against. &lt;br /&gt;
                      # Examples&lt;br /&gt;
                            *&lt;br /&gt;
                                  o I|net|gnutella-gnutella2&lt;br /&gt;
                                  o I|networks|gnutella|gnutella2 &lt;br /&gt;
    * Update Extension Variables:&lt;br /&gt;
          o x_leaves&lt;br /&gt;
                + Number of leaves running on a given hub or ultrapeer.&lt;br /&gt;
                + Value must not be greater than an integer value of 2047. &lt;br /&gt;
          o x_max&lt;br /&gt;
                + Maximum number of leaves possible on a given hub or ultrapeer.&lt;br /&gt;
                + Value must not be greater than an integer value of 2047. &lt;br /&gt;
          o uptime&lt;br /&gt;
                + Value submitted must be an integer value of the number of seconds of uptime.&lt;br /&gt;
                + Value must not be greater than an integer value of 1 year (31536000) and less than 1 hour (60). &lt;br /&gt;
&lt;br /&gt;
Pinging Caches With Your Cache&lt;br /&gt;
&lt;br /&gt;
    * Please follow this standard:&lt;br /&gt;
          o Client: TEST&lt;br /&gt;
          o Version: Your Cache&#039;s Name&lt;br /&gt;
                + The old value for &amp;quot;version&amp;quot; was 1 &lt;br /&gt;
    * Some variables to attach to the ping (compatibility):&lt;br /&gt;
          o multi&lt;br /&gt;
                + Used by some gwcs in their pings to other gwcs.&lt;br /&gt;
                + It tells the pinged cache to ignore the &amp;quot;net&amp;quot; parameter (so it should never say network not supported) and outputting the pong using this format, if possible, &amp;quot;I|pong|[cache name] [cache version]|[supported networks list]|[url adding is enabled]&amp;quot; - example: I|pong|Skulls 0.2.8a|gnutella-gnutella2|1&lt;br /&gt;
                + Used by Skulls GWC only. &lt;br /&gt;
          o cache&lt;br /&gt;
                + This is added to every request made by some gwcs, it is for statistical purposes only.&lt;br /&gt;
                + It simply tells the remote cache that the client is a GWC. &lt;br /&gt;
    * Help&lt;br /&gt;
          o For PHP&lt;br /&gt;
                + Use the fsockopen() function to open a connection to a cache.&lt;br /&gt;
                      # Make sure you &amp;quot;write&amp;quot; to the fsockopen carry value to open the GWC&#039;s target file.&lt;br /&gt;
                            * http://us.php.net/manual/en/function.fsockopen.php &lt;br /&gt;
&lt;br /&gt;
Variable Combination Standards&lt;br /&gt;
&lt;br /&gt;
    * Net variable decides specification!&lt;br /&gt;
          o There are many ways to determine spec., but going with net is the safe way.&lt;br /&gt;
          o Skulls GWC does not use the network parameter to determine specification level.&lt;br /&gt;
          o Beacon Cache (I and II) uses the network parameter to determine the specification level. &lt;br /&gt;
    * Your cache needs to be able to process certain combinations of variables.&lt;br /&gt;
          o Update variable&lt;br /&gt;
                + Update should not fail if absent if spec. 2.&lt;br /&gt;
                      # A Specification 2 parameter. &lt;br /&gt;
    * Spec 1 parameters used in Spec 2:&lt;br /&gt;
          o Should still accept hostfile and urlfile responses for spec. 2.&lt;br /&gt;
                + Beacon Cache (I and II) accepts these parameters on spec 2. &lt;br /&gt;
    * The &#039;spec&#039; paameter can be used to force a specification:&lt;br /&gt;
          o Only known to exist in Beacon Cache II, it can force the request to be handled as a specification 1 or 2 request.&lt;br /&gt;
          o Spec 1 = &#039;spec=1&#039;&lt;br /&gt;
          o Spec 2 = &#039;spec=2&#039;&lt;br /&gt;
          o If &#039;spec&#039; is not equal to any current spec, then default to the predetermined spec. &lt;br /&gt;
    * Multiple variable requests&lt;br /&gt;
          o If for instance a ping and request exist, you should always handle them properly.&lt;br /&gt;
                + Same goes with other combos like an update and ping, statfile + ping and info. &lt;br /&gt;
          o Handle multiple variables as BEST as possible!&lt;br /&gt;
                + Some scanners and GWCs like to fit all their requests into one URL send. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;row recovery, end&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Further Information:&lt;br /&gt;
&lt;br /&gt;
* [http://www.gnucleus.com/gwebcache/ Original GWC site]&lt;br /&gt;
** [http://gnucleus.sourceforge.net/gwebcache/specs.html GWC Spec. 1]&lt;br /&gt;
** [http://gnucleus.sourceforge.net/gwebcache/newgwc.html GWC Spec. 2] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;content recovered from last aviable backup&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Gnutella Web Cache===&lt;br /&gt;
Gnutella requires Gnutella Web Caches (GWC) to get IPs to establish a connection to the network.  These are critical to ensuring the health of the network.  If you have a dedicated server and can spare some extra bandwidth then please consider running a GWC.  People that don&#039;t have a dedicated server or are on normal broadband consumer lines should not run a cache from home.&lt;br /&gt;
&lt;br /&gt;
A GWC is a simple script that can be put on any webserver that supports one of the following scripting languages:&lt;br /&gt;
*JSP (Java Servlet)&lt;br /&gt;
**[http://web.archive.org/web/20061108091447/http://www.mager.org/GWebCache/ Java Servlet GWebCache Application (Archive.org)]&lt;br /&gt;
*C&lt;br /&gt;
**[http://ghostwhitecrab.com/crab/ GhostWhiteCrab]&lt;br /&gt;
*Perl &lt;br /&gt;
**[http://www.jonatkins.com/perlgcache/ Jon Atkins&#039; perlgcache] &lt;br /&gt;
**The original [http://www.gnucleus.com/gwebcache/dist/ GnuWebCache]&lt;br /&gt;
*PHP &lt;br /&gt;
**[http://gwcii.sourceforge.net/ PHPGnuCacheII] - MySQL&lt;br /&gt;
**[http://www.bazookanetworks.com Bazooka G2WC] (recommended) - flat files&lt;br /&gt;
**[http://sourceforge.net/projects/skulls/ Skulls! Multi-Network WebCache] - flat files&lt;br /&gt;
=== Further Information: ===&lt;br /&gt;
* [http://www.gnucleus.com/gwebcache/ Original GWC site]&lt;br /&gt;
&lt;br /&gt;
[[Category:External Links]]&lt;/div&gt;</summary>
		<author><name>Ale5000</name></author>
	</entry>
	<entry>
		<id>https://shareaza.sourceforge.net/w/index.php?title=Talk:GWC_specs&amp;diff=11501</id>
		<title>Talk:GWC specs</title>
		<link rel="alternate" type="text/html" href="https://shareaza.sourceforge.net/w/index.php?title=Talk:GWC_specs&amp;diff=11501"/>
		<updated>2015-03-25T12:22:01Z</updated>

		<summary type="html">&lt;p&gt;Ale5000: Created page with &amp;quot;Note: Beacon Cache II also support multi=1 attached to ping requests.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Note: Beacon Cache II also support multi=1 attached to ping requests.&lt;/div&gt;</summary>
		<author><name>Ale5000</name></author>
	</entry>
</feed>