Linux webserver 6.8.0-49-generic #49~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Nov 6 17:42:15 UTC 2 x86_64
Apache/2.4.52 (Ubuntu)
Server IP : 192.168.1.1 & Your IP : 18.191.235.161
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
share /
perl5 /
URI /
Delete
Unzip
Name
Size
Permission
Date
Action
file
[ DIR ]
drwxr-xr-x
2024-03-13 02:55
urn
[ DIR ]
drwxr-xr-x
2024-03-13 02:55
Escape.pm
6.9
KB
-rw-r--r--
2021-10-25 20:58
Heuristic.pm
6.37
KB
-rw-r--r--
2021-10-25 20:58
IRI.pm
794
B
-rw-r--r--
2021-10-25 20:58
QueryParam.pm
4.75
KB
-rw-r--r--
2021-10-25 20:58
Split.pm
2.3
KB
-rw-r--r--
2021-10-25 20:58
URL.pm
5.36
KB
-rw-r--r--
2021-10-25 20:58
WithBase.pm
3.77
KB
-rw-r--r--
2021-10-25 20:58
_foreign.pm
107
B
-rw-r--r--
2021-10-25 20:58
_generic.pm
5.69
KB
-rw-r--r--
2021-10-25 20:58
_idna.pm
2.03
KB
-rw-r--r--
2021-10-25 20:58
_ldap.pm
3.17
KB
-rw-r--r--
2021-10-25 20:58
_login.pm
231
B
-rw-r--r--
2021-10-25 20:58
_punycode.pm
5.49
KB
-rw-r--r--
2021-10-25 20:58
_query.pm
2.47
KB
-rw-r--r--
2021-10-25 20:58
_segment.pm
416
B
-rw-r--r--
2021-10-25 20:58
_server.pm
3.64
KB
-rw-r--r--
2021-10-25 20:58
_userpass.pm
1.01
KB
-rw-r--r--
2021-10-25 20:58
data.pm
3.31
KB
-rw-r--r--
2021-10-25 20:58
file.pm
9.53
KB
-rw-r--r--
2021-10-25 20:58
ftp.pm
1.03
KB
-rw-r--r--
2021-10-25 20:58
gopher.pm
2.37
KB
-rw-r--r--
2021-10-25 20:58
http.pm
425
B
-rw-r--r--
2021-10-25 20:58
https.pm
144
B
-rw-r--r--
2021-10-25 20:58
ldap.pm
2.86
KB
-rw-r--r--
2021-10-25 20:58
ldapi.pm
440
B
-rw-r--r--
2021-10-25 20:58
ldaps.pm
144
B
-rw-r--r--
2021-10-25 20:58
mailto.pm
1.62
KB
-rw-r--r--
2021-10-25 20:58
mms.pm
125
B
-rw-r--r--
2021-10-25 20:58
news.pm
1.42
KB
-rw-r--r--
2021-10-25 20:58
nntp.pm
127
B
-rw-r--r--
2021-10-25 20:58
nntps.pm
144
B
-rw-r--r--
2021-10-25 20:58
pop.pm
1.18
KB
-rw-r--r--
2021-10-25 20:58
rlogin.pm
129
B
-rw-r--r--
2021-10-25 20:58
rsync.pm
207
B
-rw-r--r--
2021-10-25 20:58
rtsp.pm
125
B
-rw-r--r--
2021-10-25 20:58
rtspu.pm
126
B
-rw-r--r--
2021-10-25 20:58
sftp.pm
98
B
-rw-r--r--
2021-10-25 20:58
sip.pm
1.66
KB
-rw-r--r--
2021-10-25 20:58
sips.pm
143
B
-rw-r--r--
2021-10-25 20:58
snews.pm
172
B
-rw-r--r--
2021-10-25 20:58
ssh.pm
175
B
-rw-r--r--
2021-10-25 20:58
telnet.pm
128
B
-rw-r--r--
2021-10-25 20:58
tn3270.pm
128
B
-rw-r--r--
2021-10-25 20:58
urn.pm
2.12
KB
-rw-r--r--
2021-10-25 20:58
Save
Rename
package URI::_generic; use strict; use warnings; use parent qw(URI URI::_query); use URI::Escape qw(uri_unescape); use Carp (); our $VERSION = '5.10'; my $ACHAR = $URI::uric; $ACHAR =~ s,\\[/?],,g; my $PCHAR = $URI::uric; $PCHAR =~ s,\\[?],,g; sub _no_scheme_ok { 1 } sub authority { my $self = shift; $$self =~ m,^((?:$URI::scheme_re:)?)(?://([^/?\#]*))?(.*)$,os or die; if (@_) { my $auth = shift; $$self = $1; my $rest = $3; if (defined $auth) { $auth =~ s/([^$ACHAR])/ URI::Escape::escape_char($1)/ego; utf8::downgrade($auth); $$self .= "//$auth"; } _check_path($rest, $$self); $$self .= $rest; } $2; } sub path { my $self = shift; $$self =~ m,^((?:[^:/?\#]+:)?(?://[^/?\#]*)?)([^?\#]*)(.*)$,s or die; if (@_) { $$self = $1; my $rest = $3; my $new_path = shift; $new_path = "" unless defined $new_path; $new_path =~ s/([^$PCHAR])/ URI::Escape::escape_char($1)/ego; utf8::downgrade($new_path); _check_path($new_path, $$self); $$self .= $new_path . $rest; } $2; } sub path_query { my $self = shift; $$self =~ m,^((?:[^:/?\#]+:)?(?://[^/?\#]*)?)([^\#]*)(.*)$,s or die; if (@_) { $$self = $1; my $rest = $3; my $new_path = shift; $new_path = "" unless defined $new_path; $new_path =~ s/([^$URI::uric])/ URI::Escape::escape_char($1)/ego; utf8::downgrade($new_path); _check_path($new_path, $$self); $$self .= $new_path . $rest; } $2; } sub _check_path { my($path, $pre) = @_; my $prefix; if ($pre =~ m,/,) { # authority present $prefix = "/" if length($path) && $path !~ m,^[/?\#],; } else { if ($path =~ m,^//,) { Carp::carp("Path starting with double slash is confusing") if $^W; } elsif (!length($pre) && $path =~ m,^[^:/?\#]+:,) { Carp::carp("Path might look like scheme, './' prepended") if $^W; $prefix = "./"; } } substr($_[0], 0, 0) = $prefix if defined $prefix; } sub path_segments { my $self = shift; my $path = $self->path; if (@_) { my @arg = @_; # make a copy for (@arg) { if (ref($_)) { my @seg = @$_; $seg[0] =~ s/%/%25/g; for (@seg) { s/;/%3B/g; } $_ = join(";", @seg); } else { s/%/%25/g; s/;/%3B/g; } s,/,%2F,g; } $self->path(join("/", @arg)); } return $path unless wantarray; map {/;/ ? $self->_split_segment($_) : uri_unescape($_) } split('/', $path, -1); } sub _split_segment { my $self = shift; require URI::_segment; URI::_segment->new(@_); } sub abs { my $self = shift; my $base = shift || Carp::croak("Missing base argument"); if (my $scheme = $self->scheme) { return $self unless $URI::ABS_ALLOW_RELATIVE_SCHEME; $base = URI->new($base) unless ref $base; return $self unless $scheme eq $base->scheme; } $base = URI->new($base) unless ref $base; my $abs = $self->clone; $abs->scheme($base->scheme); return $abs if $$self =~ m,^(?:$URI::scheme_re:)?//,o; $abs->authority($base->authority); my $path = $self->path; return $abs if $path =~ m,^/,; if (!length($path)) { my $abs = $base->clone; my $query = $self->query; $abs->query($query) if defined $query; my $fragment = $self->fragment; $abs->fragment($fragment) if defined $fragment; return $abs; } my $p = $base->path; $p =~ s,[^/]+$,,; $p .= $path; my @p = split('/', $p, -1); shift(@p) if @p && !length($p[0]); my $i = 1; while ($i < @p) { #print "$i ", join("/", @p), " ($p[$i])\n"; if ($p[$i-1] eq ".") { splice(@p, $i-1, 1); $i-- if $i > 1; } elsif ($p[$i] eq ".." && $p[$i-1] ne "..") { splice(@p, $i-1, 2); if ($i > 1) { $i--; push(@p, "") if $i == @p; } } else { $i++; } } $p[-1] = "" if @p && $p[-1] eq "."; # trailing "/." if ($URI::ABS_REMOTE_LEADING_DOTS) { shift @p while @p && $p[0] =~ /^\.\.?$/; } $abs->path("/" . join("/", @p)); $abs; } # The opposite of $url->abs. Return a URI which is as relative as possible sub rel { my $self = shift; my $base = shift || Carp::croak("Missing base argument"); my $rel = $self->clone; $base = URI->new($base) unless ref $base; #my($scheme, $auth, $path) = @{$rel}{qw(scheme authority path)}; my $scheme = $rel->scheme; my $auth = $rel->canonical->authority; my $path = $rel->path; if (!defined($scheme) && !defined($auth)) { # it is already relative return $rel; } #my($bscheme, $bauth, $bpath) = @{$base}{qw(scheme authority path)}; my $bscheme = $base->scheme; my $bauth = $base->canonical->authority; my $bpath = $base->path; for ($bscheme, $bauth, $auth) { $_ = '' unless defined } unless ($scheme eq $bscheme && $auth eq $bauth) { # different location, can't make it relative return $rel; } for ($path, $bpath) { $_ = "/$_" unless m,^/,; } # Make it relative by eliminating scheme and authority $rel->scheme(undef); $rel->authority(undef); # This loop is based on code from Nicolai Langfeldt <janl@ifi.uio.no>. # First we calculate common initial path components length ($li). my $li = 1; while (1) { my $i = index($path, '/', $li); last if $i < 0 || $i != index($bpath, '/', $li) || substr($path,$li,$i-$li) ne substr($bpath,$li,$i-$li); $li=$i+1; } # then we nuke it from both paths substr($path, 0,$li) = ''; substr($bpath,0,$li) = ''; if ($path eq $bpath && defined($rel->fragment) && !defined($rel->query)) { $rel->path(""); } else { # Add one "../" for each path component left in the base path $path = ('../' x $bpath =~ tr|/|/|) . $path; $path = "./" if $path eq ""; $rel->path($path); } $rel; } 1;