!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache. PHP/8.1.30 

uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/usr/share/webmin/net/   drwxr-xr-x
Free 25.76 GB of 117.98 GB (21.84%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     save_dns.cgi (3.65 KB)      -rwxr-xr-x
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#!/usr/bin/perl
# save_dns.cgi
# Save DNS client configuration

require './net-lib.pl';
$access{'dns'} == 2 || &error($text{'dns_ecannot'});
&error_setup($text{'dns_err'});
&ReadParse();
$old_fqdn = &get_system_hostname(); # Fully-Qualified Domain Name
$old_pqdn = &get_system_hostname(1); # Partially Qualified Domain Name (short name)
$old_hostname = &get_hostname();

$in{'hostname'} =~ /^[A-Za-z0-9\.\-]+$/ ||
    &error(&text('dns_ehost', &html_escape($in{'hostname'})));
$dns = { };

$new_pqdn = $in{'hostname'};
$new_pqdn =~ s/\..*$//;

for($i=0; defined($ns = $in{"nameserver_$i"}); $i++) {
    $ns = $in{"nameserver_$i"};
    $ns =~ s/^\s+//; $ns =~ s/\s+$//;
    if ($ns) {
        &check_ipaddress_any($ns) ||
            &error(&text('dns_ens', &html_escape($ns)));
        push(@{$dns->{'nameserver'}}, $ns);
        }
    }
if ($in{'name0'}) {
    my $i = 0 ;
    my $namekey="name$i";
    while ($in{$namekey}) {
    $dns->{'name'}[$i] = $in{$namekey};
    my $nskey = "nameserver$i";
    my $j = -1;
    while (++$j < $max_dns_servers) {
        $ns = $in{"${nskey}_$j"};
        $ns =~ s/^\s+//; $ns =~ s/\s+$//;
        if ($ns) {
        &check_ipaddress_any($ns) ||
            &error(&text('dns_ens', &html_escape($ns)));
        push(@{$dns->{$nskey}}, $ns);
        }
    }
    $i++;
    $namekey="name$i";
    }
}
if (!$in{'domain_def'}) {
    @dlist = split(/\s+/, $in{'domain'});
    foreach $d (@dlist) {
        $d =~ /^[A-Za-z0-9\.\-]+$/ ||
            &error(&text('dns_edomain', &html_escape($d)));
        $new_fqdn = "$new_pqdn.$d" if !$new_fqdn;
        push(@{$dns->{'domain'}}, $d);
        }
    @dlist || &error($text{'dns_esearch'});
    }
&parse_order($dns);
&save_dns_config($dns);
&save_hostname($in{'hostname'});

if ($in{'hosts'} && ($in{'hostname'} ne $old_hostname || $new_fqdn ne $old_fqdn)) {
    # Update hostname/fqdn/pqdn in /etc/hosts too
    @hosts = &list_hosts();
    foreach $h (@hosts) {
        local $found = 0;
        foreach $n (@{$h->{'hosts'}}) {
            if (lc($n) eq lc($old_hostname)) {
                $n = $in{'hostname'};
                $found++;
                }
            elsif (lc($n) eq lc($old_fqdn) && $new_fqdn) {
                $n = $new_fqdn;
                $found++;
                }
            elsif (lc($n) eq lc($old_pqdn)) {
                $n = $new_pqdn;
                $found++;
                }
            }
        &modify_host($h) if ($found);
        }

    # Update in ipnodes too
    @ipnodes = &list_ipnodes();
    foreach $h (@ipnodes) {
        local $found = 0;
        foreach $n (@{$h->{'ipnodes'}}) {
            if (lc($n) eq lc($old_hostname)) {
                $n = $in{'hostname'};
                $found++;
                }
            elsif (lc($n) eq lc($old_fqdn) && $new_fqdn) {
                $n = $new_fqdn;
                $found++;
                }
            elsif (lc($n) eq lc($old_pqdn)) {
                $n = $new_pqdn;
                $found++;
                }
            }
        &modify_ipnode($h) if ($found);
        }
    }

if (&foreign_installed("postfix") && $in{'hostname'} ne $old_hostname) {
    # Update postfix mydestination too
    &foreign_require("postfix");
    &postfix::lock_postfix_files();
    @mydests = split(/[ ,]+/, &postfix::get_current_value("mydestination"));
    $idx = &indexoflc($old_hostname, @mydests);
    if ($idx >= 0) {
        $mydests[$idx] = $in{'hostname'};
        &postfix::set_current_value("mydestination",
                        join(", ", @mydests));
        }
    $idx = &indexoflc($old_pqdn, @mydests);
    if ($idx >= 0) {
        $mydests[$idx] = $new_pqdn;
        &postfix::set_current_value("mydestination",
                        join(", ", @mydests));
        }

    # Update postfix myorigin
    $myorigin = &postfix::get_current_value("myorigin");
    if ($myorigin eq $old_hostname) {
        &postfix::set_current_value("myorigin",
                        $in{'hostname'});
        }

    # Update postfix myhostname
    $myhostname = &postfix::get_current_value("myhostname");
    if ($myhostname eq $old_hostname) {
        &postfix::set_current_value("myhostname",
                        $in{'hostname'});
        }

    &postfix::unlock_postfix_files();
    if (&postfix::is_postfix_running()) {
        &postfix::reload_postfix();
        }
    }

&webmin_log("dns", undef, undef, \%in);
&redirect("");


:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0043 ]--