run nodebb on iis cause Error: ipaddr: the address has neither IPv6 nor IPv4



  • the site is on and working

    i try to connect with my user and i get 500 and html of the source code site in the resonse of the json

    i checked what cause the problem and i found

    the function in ipaddr.js get formatundefined as input dont know why

    iis log when i connect

    14/11 00:22:28 [7608] - error: /login
    Error: ipaddr: the address has neither IPv6 nor IPv4
    at Object.ipaddr.parse (C:\sites\mysite\node_modules\ipaddr.js\lib\ipaddr.js:583:13)
    at Object.Blacklist.test (C:\sites\mysite\src\meta\blacklist.js:68:20)
    at middleware.applyBlacklist (C:\sites\mysite\src\middleware\index.js:164:17)
    at Layer.handle [as handle_request] (C:\sites\mysite\node_modules\express\lib\router\layer.js:95:5)
    at next (C:\sites\mysite\node_modules\express\lib\router\route.js:137:13)
    at csrf (C:\sites\mysite\node_modules\csurf\index.js:117:5)
    at Layer.handle [as handle_request] (C:\sites\mysite\node_modules\express\lib\router\layer.js:95:5)
    at next (C:\sites\mysite\node_modules\express\lib\router\route.js:137:13)
    at Route.dispatch (C:\sites\mysite\node_modules\express\lib\router\route.js:112:3)
    at Layer.handle [as handle_request] (C:\sites\mysite\node_modules\express\lib\router\layer.js:95:5)
    at C:\sites\mysite\node_modules\express\lib\router\index.js:281:22
    at Function.process_params (C:\sites\mysite\node_modules\express\lib\router\index.js:335:12)
    at next (C:\sites\mysite\node_modules\express\lib\router\index.js:275:10)
    at Function.handle (C:\sites\mysite\node_modules\express\lib\router\index.js:174:3)
    at router (C:\sites\mysite\node_modules\express\lib\router\index.js:47:12)
    at Layer.handle [as handle_request] (C:\sites\mysite\node_modules\express\lib\router\layer.js:95:5)


  • Global Moderator

    Make sure IIS is forwarding the client's IP Address to NodeBB




  • Global Moderator

    I don't know. I've never used IIS.



  • this is my web.config file

    <configuration>
        <system.webServer>
    
            <handlers>
                <add name="iisnode" path="/app.js" verb="*" modules="iisnode" />
            </handlers>
    
            <rewrite>
                <rules>
                    <rule name="sendToNode">
                        <match url="/*" />
                        <action type="Rewrite" url="app.js" />
                    </rule>
                 
                </rules>
            </rewrite>
    		
        </system.webServer>
    </configuration>
    

  • Admin

    After line 68 in src/meta/blacklist.js, can you add this?

    console.log('blacklist testing:', clientIp);

    Then start NodeBB again, and let me know what echoes before the stack trace.



  • i dont see anything in iis logs and in output.log in logs folder of nodebb

    i wrote in ipaddr.js

    in line 583

    throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format" + string);

    iis logs print :

    ipaddr: the address has neither IPv6 nor IPv4 format formatundefined

    this is my request

    POST /login HTTP/1.1
    Host: mysite.com
    Connection: keep-alive
    Content-Length: 100
    Origin: mysite.com
    x-csrf-token: EyCm57iR-ckzZLbUtx4iv96r3OWR9x7bjVYw
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36
    Content-Type: application/x-www-form-urlencoded; charset=UTF-8
    Accept: /
    X-Requested-With: XMLHttpRequest
    Referer: http://mysite.com/login
    Accept-Encoding: gzip, deflate
    Accept-Language: he-IL,he;q=0.9,en-US;q=0.8,en;q=0.7
    Cookie: express.sid=s%3Ax5vzU6uF36diteLyw9xg_DVbXgNl9LA_.MIY34QvMFdPH1k1w2x7i2ES%2B8vIQo%2ByAXqeok%2BhHrt4; io=a7s6sAdWXxSYNTprAAAB

    i dont see the line: Accept-Encoding: gzip, deflate

    when i run the site with node localhost


  • Admin

    My mistake, please add that line before line 68.



  • @julian still nothing


  • Admin

    Unfortunately I cannot help further as you are unable to provide a log that I need to see. Line 68 is the one calling ipaddr, and so placing the console.log before it should echo properly.



  • result

    blacklist testing: undefined



  • found solution

    <iisnode enableXFF="true" />


Log in to reply
 


Looks like your connection to NodeBB was lost, please wait while we try to reconnect.