Server IP : 195.201.23.43 / Your IP : 18.191.85.94 Web Server : Apache System : Linux webserver2.vercom.be 5.4.0-192-generic #212-Ubuntu SMP Fri Jul 5 09:47:39 UTC 2024 x86_64 User : kdecoratie ( 1041) PHP Version : 7.1.33-63+ubuntu20.04.1+deb.sury.org+1 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /usr/share/webmin/mount/ |
Upload File : |
#!/usr/bin/perl # nfs_server.cgi # Called in a pop-up javascript window to display a list of known NFS # servers, generated by broadcasting on the NFS port require './mount-lib.pl'; use Socket; &popup_header($text{'nfs_server'}); print <<EOF; <script> function choose(f) { top.opener.ifield.value = f; window.close(); } </script> EOF # send NFS null procedure call to broadcast address, and wait for # 2 seconds for all replies $msg = pack("NNNNNNNNNN", time(), # xid 0, # CALL 2, # RPC version 2 100003, # nfs program 2, # nfs version 0, # null procedure 0, 0, # no authority 0, 0, # no credentials ); socket(SOCK, PF_INET, SOCK_DGRAM, getprotobyname("udp")); setsockopt(SOCK, SOL_SOCKET, SO_BROADCAST, pack("l", 1)); send(SOCK, $msg, 0, pack_sockaddr_in(2049, inet_aton(&broadcast_addr()))); $tmstart = time(); while(time()-$tmstart < 2) { $rin = ''; vec($rin, fileno(SOCK), 1) = 1; if (select($rout = $rin, undef, undef, 1)) { $from = recv(SOCK, $buf, 1024, 0); ($fromport, $fromaddr) = unpack_sockaddr_in($from); $fromip = inet_ntoa($fromaddr); if ($fromip !~ /\.(255|0)$/ && !$already{$fromip}++) { push(@fromip, $fromip); push(@fromaddr, $fromaddr); } } } if (@fromip) { print "<b>$text{'nfs_select'}</b><br>\n"; print "<table border width=100%>\n"; print "<tr $tb> <td><b>$text{'nfs_ip'}</b></td> ", "<td><b>$text{'nfs_host'}</b></td> </tr>\n"; for($i=0; $i<@fromip; $i++) { $fromhost = gethostbyaddr($fromaddr[$i], AF_INET); print "<tr $cb><td>"; print &ui_link("#", $fromip[$i], undef, "onClick='choose(\"".($fromhost ? $fromhost : $fromip[$i])."\");return false;'" ); print "</td>\n"; printf "<td>%s</td> </tr>\n", $fromhost ? $fromhost : "<br>"; } print "</table>\n"; } else { print "<b>$text{'nfs_none'}</b>.<p>\n"; } &popup_footer();Private