Web interface via IPv4 en IPv6

Stel hier je vragen in het Nederlands.
Je zult sneller (en misschien betere) antwoorden in de engelstalige "boards" krijgen. TIP: je kunt je "profile" ook op Nederlands instellen.
Post Reply
Brambo123
Release Testers
Release Testers
Posts: 11
Joined: March 21st, 2008, 1:00 am

Web interface via IPv4 en IPv6

Post by Brambo123 »

Is het ook mogelijk om SABnzbd te laten luisteren naar IPv4 en IPv6 tegelijk?
Bij IPv4 laat ik hem luisteren naar "0.0.0.0" en bij IPv6 naar "::", maar hoe doe je beide tegelijk ;D
Komt er dus eigenlijk op neer dat die naar 2 ip adressen moet luisteren.
User avatar
sander
Release Testers
Release Testers
Posts: 9429
Joined: January 22nd, 2008, 2:22 pm

Re: Web interface via IPv4 en IPv6

Post by sander »

Ik heb :: ingevuld, en dan luistert ie naar IPv4 en IPv6. Heb je dat geprobeerd?

Maar: Ik zit op Ubuntu Linux. Op welk OS draait jouw SAB? Misschien maakt het uit ...
Brambo123
Release Testers
Release Testers
Posts: 11
Joined: March 21st, 2008, 1:00 am

Re: Web interface via IPv4 en IPv6

Post by Brambo123 »

Ik draai op Windows Server 2008 R2.
Maar :: is puur voor IPv6 en 0.0.0.0 is puur IPv4 dus zou ook helemaal niet mogen werken.
User avatar
sander
Release Testers
Release Testers
Posts: 9429
Joined: January 22nd, 2008, 2:22 pm

Re: Web interface via IPv4 en IPv6

Post by sander »

Brambo123 wrote:Ik draai op Windows Server 2008 R2.
Maar :: is puur voor IPv6 en 0.0.0.0 is puur IPv4 dus zou ook helemaal niet mogen werken.
Heb je het getest met :: ? Kan je dan nog via http://localhost:8080/ erbij?
Brambo123
Release Testers
Release Testers
Posts: 11
Joined: March 21st, 2008, 1:00 am

Re: Web interface via IPv4 en IPv6

Post by Brambo123 »

Ik heb uiteraard getest, en natuurlijk kan ik er met localhost naar toe.
Hij gaat dan eerst ::1 proberen (localhost in IPv6), werkt dat niet, dan gaat die naar 127.0.0.1 (localhost in IPv4).
Maar daar heb ik dus helemaal niets aan.
Als je wilt testen moet je naar:
http://127.0.0.1:8080/ voor IPv4
http://[::1]:8080/ voor IPv6
User avatar
sander
Release Testers
Release Testers
Posts: 9429
Joined: January 22nd, 2008, 2:22 pm

Re: Web interface via IPv4 en IPv6

Post by sander »

Even gecheckt op Ubuntu Linux, en daar resolvet localhost inderdaad ook naar 127.0.0.1 en ::1. Zie regel 1 en regel 3:

Code: Select all

sander@netbook:~$ cat /etc/hosts | grep localhost
127.0.0.1	localhost.localdomain	localhost
::1	netbook	localhost6.localdomain6	localhost6
::1     localhost ip6-localhost ip6-loopback
sander@netbook:~$ 
Maar met '::' reageert SABnzbd bij mij dus zowel op IPv4 als IPv6:

Code: Select all

sander@netbook:~$ grep :: .sabnzbd/sabnzbd.ini 
host = ::
sander@netbook:~$ 

sander@netbook:~$ wget -4 localhost:8080 -O /dev/null
--2011-08-08 22:38:33--  http://localhost:8080/
Resolving localhost... 127.0.0.1, 127.0.0.1
Connecting to localhost|127.0.0.1|:8080... connected.
HTTP request sent, awaiting response... 200 OK
<snip>

sander@netbook:~$ wget -6 localhost:8080 -O /dev/null
--2011-08-08 22:38:37--  http://localhost:8080/
Resolving localhost... ::1
Connecting to localhost|::1|:8080... connected.
HTTP request sent, awaiting response... 200 OK
<snip>

sander@netbook:~$ 
Brambo123
Release Testers
Release Testers
Posts: 11
Joined: March 21st, 2008, 1:00 am

Re: Web interface via IPv4 en IPv6

Post by Brambo123 »

Maar i.p.v. met wget, werkt http://127.0.0.1:8080/ en http://[::1]:8080/ wel gewoon bij jou (in web browser)?
Onder Windows werkt dat in ieder geval niet, anders had ik dit topic niet begonnen.
User avatar
sander
Release Testers
Release Testers
Posts: 9429
Joined: January 22nd, 2008, 2:22 pm

Re: Web interface via IPv4 en IPv6

Post by sander »

Brambo123 wrote:Maar i.p.v. met wget, werkt http://127.0.0.1:8080/ en http://[::1]:8080/ wel gewoon bij jou (in web browser)?
Onder Windows werkt dat in ieder geval niet, anders had ik dit topic niet begonnen.
Ja, ook in mijn webbrowser (Chrome) werken beide URLs.
User avatar
sander
Release Testers
Release Testers
Posts: 9429
Joined: January 22nd, 2008, 2:22 pm

Re: Web interface via IPv4 en IPv6

Post by sander »

Ik heb een Windows-machine gevonden, en gespeeld met "SABnzbd Host". Ik zie hetzelfde als de OP: op Windows 7 luistert SABnzbd / cherrypy ofwel naar IPv4 ofwel naar IPv6. Niet allebei zoals op Ubuntu Linux

Dit zegt de cherry-documentatie:
socket_host
The hostname or IP address on which to listen for connections.

Host values may be any IPv4 or IPv6 address, or any valid hostname. The string ‘localhost’ is a synonym for ‘127.0.0.1’ (or ‘::1’, if your hosts file prefers IPv6). The string ‘0.0.0.0’ is a special IPv4 entry meaning “any active interface” (INADDR_ANY), and ‘::’ is the similar IN6ADDR_ANY for IPv6. The empty string or None are not allowed.
Oh, ik heb 3 jaar geleden dezelfde vraag gesteld: http://forums.sabnzbd.org/viewtopic.php?f=4&t=265 . Dus probleem voor Linux blijkbaar opgelost, waarschijnlijk in cherrypy (of misschien python), niet in SABnzbd denk ik. En nog meer: http://forums.sabnzbd.org/viewtopic.php?t=1701.

Ik denk dat je in cherrypy twee servers kan definieren, dus 0.0.0.0 en :: (zie http://www.zacwitte.com/running-cherryp ... ts-example ), zodat hij ook op Windows luistert naar IPv4 en IPv6, maar da's vast veel werk in SABnzbd.

Restultaat van "SABnzbd Host", resp: <leeg>, ::, 0.0.0.0 en localhost

Code: Select all

C:\Users\Sander>netstat -aon | find /i "listen" | find /i 8080
FIND: Parameter format not correct

C:\Users\Sander>netstat -aon | find /i "listen" | find /i "8080"
  TCP    192.168.1.53:8080      0.0.0.0:0              LISTENING       3788

C:\Users\Sander>netstat -aon | find /i "listen" | find /i "8080"
  TCP    [::]:8080              [::]:0                 LISTENING       3920

C:\Users\Sander>netstat -aon | find /i "listen" | find /i "8080"
  TCP    0.0.0.0:8080           0.0.0.0:0              LISTENING       2776

C:\Users\Sander>netstat -aon | find /i "listen" | find /i "8080"
  TCP    [::1]:8080             [::]:0                 LISTENING       3776

C:\Users\Sander>
User avatar
sander
Release Testers
Release Testers
Posts: 9429
Joined: January 22nd, 2008, 2:22 pm

Re: Web interface via IPv4 en IPv6

Post by sander »

EDIT:

I did some coding, and I'm now to able run SABnzbd on an additional host:port. So that could be a solution for SABnzbd on Windows to listen to both IPv4 and IPv6: start SAB on both 0.0.0.0 and ::

I still don't understand (or: did not yet try) how to run SABnzbd from source on Windows, so I can't test it for real on Windows.


EDIT/PS: FWIW, I do think SABnzbd should be able to handle IPv4 and IPv6 at the same time (dual stack).

Code: Select all


--- SABnzbd.py.org	2011-08-09 10:40:11.409183471 +0200
+++ SABnzbd.py	2011-08-09 11:06:30.869183767 +0200
@@ -1261,6 +1261,19 @@
             except:
                 pass
 
+
+    '''
+    SJ: as a test, let's do an addiotional server on a specific host and port
+    Goal: if SABnzbd should listen on both IPv4 and IPv6, and '::' does not take care of that (as on Win7), run SABnzbd on both 0.0.0.0 and ::
+    Maybe some checking before: if host == '::' : start also on 0.0.0.0, and just pass an exception if port is already used (better check if it's SAB itself)
+    '''
+    http_server = _cpwsgi_server.CPWSGIServer()
+    http_server.bind_addr = ('0.0.0.0', 9999)
+    adapter = _cpserver.ServerAdapter(cherrypy.engine, http_server, http_server.bind_addr)
+    adapter.subscribe()
+
+
+
     https_cert = sabnzbd.cfg.https_cert.get_path()
     https_key = sabnzbd.cfg.https_key.get_path()
     if enable_https:


Post Reply