<div dir="ltr">Hi Mark, you need to use std.ip() from the std vmod.<div><br></div><div>Also, I highly recommend using the PROXY protocol (Varnish, HAProxy and Nginx, at least support it), it will allow you to use client.ip directly and not bother with this.</div></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div>-- <br></div>Guillaume Quintard<br></div></div></div>
<br><div class="gmail_quote">On Fri, Mar 31, 2017 at 11:44 AM, Mark Hanford <span dir="ltr"><<a href="mailto:mark@hanfordonline.co.uk" target="_blank">mark@hanfordonline.co.uk</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi folks.<div><br></div><div>Because my varnish nodes are behind two different proxies, I can't really use client.ip within my VCL. What I have is a header "X-Real-Ip" instead, which is populated automatically by one proxy, and by me derived from the "X-Forwarded-For" for the other.</div><div><br></div><div>What this means is that where I would usually use ACL to block access to a resource:</div><div><br></div><div>    if (req.http.host == "<a href="http://test.mydomain.com" target="_blank">test.mydomain.com</a>") {</div><div>        if (client.ip ~ trustedips) {</div><div>            # allow access</div><div>        } else {</div><div>            return (synth(405, "Not allowed");<br></div><div>        }</div><div>    }</div><div><br></div><div>But this doesn't work if I replace client.ip with a non-IP typed field.</div><div><br></div><div><div><span class="m_-335127491946880979gmail-Apple-tab-span" style="white-space:pre-wrap">  </span>Message from VCC-compiler:</div><div><span class="m_-335127491946880979gmail-Apple-tab-span" style="white-space:pre-wrap">   </span>Expected CSTR got 'purgers'</div><div><span class="m_-335127491946880979gmail-Apple-tab-span" style="white-space:pre-wrap">  </span>(program line 1193), at</div><div><span class="m_-335127491946880979gmail-Apple-tab-span" style="white-space:pre-wrap">      </span>('default.vcl' Line 339 Pos 34)</div><div><span class="m_-335127491946880979gmail-Apple-tab-span" style="white-space:pre-wrap">                      </span>if (req.http.X-Real-Ip ~ trustedips) {</div><div><span class="m_-335127491946880979gmail-Apple-tab-span" style="white-space:pre-wrap">       </span>------------------------------<wbr>---##########---</div></div><div><br></div><div>Is there any way I can get the same result as this but without using client.ip?</div><div><br></div><div>thanks,</div><div><br></div><div>Mark</div></div>
<br>______________________________<wbr>_________________<br>
varnish-misc mailing list<br>
<a href="mailto:varnish-misc@varnish-cache.org">varnish-misc@varnish-cache.org</a><br>
<a href="https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc" rel="noreferrer" target="_blank">https://www.varnish-cache.org/<wbr>lists/mailman/listinfo/<wbr>varnish-misc</a><br></blockquote></div><br></div>