Thanks Mithun.
1. Since the query is passed through cloudflare, so a CF- header is wanted
for fetching client's real IP.
2. Since I am querying PTR via a stub resolver (such as 8.8.8.8), I guess
this public dns server has already cached the result. right?

Regards.


On Wed, Dec 23, 2020 at 9:08 AM Mithun Bhattacharya <mit...@gmail.com>
wrote:

> Replying to the DL.
>
> On Tue, Dec 22, 2020 at 7:07 PM Mithun Bhattacharya <mit...@gmail.com>
> wrote:
>
>> $r->connection->client_ip would report your proxy server if you have a
>> reverse proxy setup - this is not a common use case though.
>>
>> DNS lookup would usually be an expensive process and you are supposed to
>> be nice to other services so cache it for the TTL of the PTR record.
>>
>> On Tue, Dec 22, 2020 at 6:44 PM Matthias Peng <pengmatth...@gmail.com>
>> wrote:
>>
>>> I am a newbie to mp development stack.
>>> After one day of work, I have made a simple handler, which returns the
>>> client's address and its PTR record.
>>> The demo:
>>> https://myhostnames.com/
>>>
>>> The code shown below:
>>>
>>> package MyHostname;
>>>
>>>
>>> use strict;
>>>
>>> use Net::DNS;
>>>
>>> use Apache2::RequestRec ();
>>>
>>> use Apache2::RequestIO ();
>>>
>>> use Apache2::Connection ();
>>>
>>> use APR::Table ();
>>>
>>> use Apache2::Const -compile => qw(OK FORBIDDEN);
>>>
>>>
>>>
>>> sub handler {
>>>
>>>
>>>     my $r = shift;
>>>
>>>     my $ip = $r->headers_in->{'CF-Connecting-IP'} ||
>>> $r->connection->client_ip;
>>>
>>>
>>>     my $host = dns_query($ip) || "";
>>>
>>>
>>>     $r->content_type('text/plain; charset=utf-8');
>>>
>>>     $r->print("Your IP: $ip, Hostname: $host");
>>>
>>>
>>>     return Apache2::Const::OK;
>>>
>>> }
>>>
>>>
>>>
>>> sub dns_query {
>>>
>>>     my $ip = shift;
>>>
>>>     my $resolver = Net::DNS::Resolver->new();
>>>
>>>     my $reply = $resolver->query($ip, 'PTR');
>>>
>>>
>>>     if ($reply) {
>>>
>>>         for my $rr ($reply->answer) {
>>>
>>>             return $rr->rdstring;  # we need only one
>>>
>>>         }
>>>
>>>     }
>>>
>>>
>>>     return;
>>>
>>> }
>>>
>>>
>>>
>>> 1;
>>>
>>>
>>>
>>> Can anyone give your review? Thanks in advance.
>>>
>>>
>>> Matthias
>>>
>>>
>>>
>>>
>>> On Tue, Dec 22, 2020 at 1:49 PM Matthias Peng <pengmatth...@gmail.com>
>>> wrote:
>>>
>>>> Hello
>>>>
>>>> I am developing a simple mp2 application.
>>>> I looked for the installation for mp2 utils, and found this two:
>>>>
>>>> libapache2-mod-perl2
>>>>
>>>> libapache2-mod-apreq2
>>>>
>>>>
>>>> what're their relations? Should I install both, or only the first one?
>>>>
>>>>
>>>> Thanks.
>>>>
>>>

Reply via email to