/src/tcpanel/modules/network/distro_toroo-v3.1-cempaka.php
PHP | 284 lines | 257 code | 13 blank | 14 comment | 5 complexity | 3ef626eafa78d9fb1c3baf8ef7f0d325 MD5 | raw file
Possible License(s): GPL-2.0
- <?php
- /*
- * Noprianto
- * Singkong 1.0 package helper script
- * 2008
- *
- * GPL
- * modify by Ibnu Yahya <ibnu.yahya@toroo.org>
- */
- $iface_info = array ();
- $cmd_start = "/etc/rc.d/rc.inet1 start";
- $cmd_stop = "/etc/rc.d/rc.inet1 stop";
- //get interfaces
- //
- $netcards = split("\n", shell_exec ("/usr/sbin/hwinfo --netcard --short"));
- for ($i=0; $i<count ($netcards); $i++)
- {
- $temp = trim ($netcards[$i]);
- if ($temp == "network:" || $temp == "") continue;
- list ($iface, $model) = split ("[ ]+", $temp, 2);
- $iface_info["$iface"] = $model;
- }
- //$save_config_fbody
- //accept 2 params: $iface_arr, $host_arr
- $save_config_fbody = '
- $_resolv = "/etc/resolv.conf";
- $_hosts = "/etc/hosts";
- $_inet = "/etc/rc.d/rc.inet1.conf";
- //interface config file
- $cf_iface = $_inet;
-
- //hosts config file
- $cf_hosts = $_hosts;
- //resolv config file
- $cf_resolv = $_resolv;
- $now = date("d-m-Y H:i:s");
-
- $fcontent_iface = "#Generated by noppanel (network module) on $now.\n\n\n";
-
- $fcontent_hosts = "#Generated by noppanel (network module) on $now.\n\n\n";
- $fcontent_hosts .= "127.0.0.1\t\tlocalhost\n";
-
- $fcontent_resolv = "#Generated by noppanel (network module) on $now.\n\n\n";
- $i = 0;
- foreach ($iface_arr as $k => $v)
- {
- $fcontent_iface .= "IPADDR[$i]=\"" . $v[0] . "\"\n";
- $fcontent_iface .= "NETMASK[$i]=\"" . $v[1] . "\"\n";
- if ($v[2] == true)
- {
- $fcontent_iface .= "USE_DHCP[$i]=\"yes\"\n";
- }
- else
- {
- $fcontent_iface .= "USE_DHCP[$i]=\"\"\n";
- }
- $fcontent_iface .= "DHCP_HOSTNAME[$i]=\"\"\n";
- $fcontent_iface .= "\n\n";
- $fcontent_hosts .= $v[0] . "\t\t" . $host_arr[0] . "." . $host_arr[1] . " " . $host_arr[0] . "\n";
- $i++;
- }
- $fcontent_iface .= "GATEWAY=\"" . $host_arr[2] . "\"\n";
- //search
- for ($i=6; $i<=8; $i++)
- {
- if (trim($host_arr[$i])!="")
- {
- $fcontent_resolv .= "search " . $host_arr[$i] . "\n";
- }
- }
-
- //ns
- for ($i=3; $i<=5; $i++)
- {
- if (trim($host_arr[$i])!="")
- {
- $fcontent_resolv .= "nameserver " . $host_arr[$i] . "\n";
- }
- }
- file_put_contents ($cf_iface, $fcontent_iface);
-
- file_put_contents ($cf_hosts, $fcontent_hosts);
-
- file_put_contents ($cf_resolv, $fcontent_resolv);
- ';
- //$load_config_fbody
- //accept 2 params: $nb_iface
- $load_config_fbody = '
- $_resolv = "/etc/resolv.conf";
- $_hosts = "/etc/hosts";
- $_inet = "/etc/rc.d/rc.inet1.conf";
- //get interface config
- $cf_iface = $_inet;
- $config_iface = split ("\n", shell_exec ("cat $cf_iface | grep -e \'^[^# ]\' | sort"));
- $config_temp = array();
- for ($i=0; $i<count ($config_iface); $i++)
- {
- $temp = trim ($config_iface[$i]);
- if ($temp == "") continue;
- list ($k, $v) = split ("=", $temp);
- $config_temp["$k"] = $v;
- }
- //interface config
- $iface_arr = array();
- for ($i=0; $i<count ($nb_iface); $i++)
- {
- $keys = array_keys ($config_temp);
- $search = "[$i]";
- for ($j=0; $j<count ($keys); $j++)
- {
- if (strstr ($keys[$j], $search))
- {
- //here comes the bad logic :p
- $iface_arr[$i] = array ($config_temp["IPADDR$search"], $config_temp["NETMASK$search"], $config_temp["USE_DHCP$search"]);
- break;
- }
- }
- }
- $gateway = $config_temp["GATEWAY"];
- //
- //
- //------------
- //
- //get host info
- $cf_hosts = $_hosts;
- $config_hosts = split ("\n", shell_exec ("cat $cf_hosts | grep -e \'^[^# ]\' | sort"));
- $config_temp = array();
- for ($i=0; $i<count ($config_hosts); $i++)
- {
- $temp = trim ($config_hosts[$i]);
- if ($temp == "") continue;
-
- list ($k, $v) = split ("[\t]+", $temp);
- if (trim($k) == "127.0.0.1") continue;
- $config_temp["$k"] = $v;
- }
- foreach ($config_temp as $k=>$v)
- {
- //another bad logic :)
- for ($i=0; $i<count ($iface_arr); $i++)
- {
- if ("\"$k\"" == $iface_arr[$i][0])
- {
- $hostinfo = split("[ ]+", $v);
- break;
- }
- else
- {
- $hostinfo = array();
- }
- }
- }
- $hostname = $hostinfo[1];
- $domain_arr = split("\.", $hostinfo[0]);
- for ($i=1; $i<count ($domain_arr); $i++)
- {
- $domain_arr2 [] = $domain_arr[$i];
- }
- $domain = join (".", $domain_arr2);
- //partial host arr
- $host_arr = array ($hostname, $domain, $gateway);
- //
- //
- //----------------
- //
- //get dns info
- $cf_resolv = $_resolv;
- $config_resolv = split ("\n", shell_exec ("cat $cf_resolv | grep -e \'^[^# ]\' | sort"));
- $config_temp = array();
- for ($i=0; $i<count ($config_resolv); $i++)
- {
- $temp = trim ($config_resolv[$i]);
- if ($temp == "") continue;
- list ($k, $v) = split ("[ ]+", $temp);
- $config_temp[] = array (trim($k), trim($v));
- }
- $ns_arr = array();
- $search_arr = array();
- for ($i=0; $i<count ($config_temp); $i++)
- {
- if ($config_temp[$i][0] == "nameserver")
- {
- $ns_arr [] = $config_temp[$i][1];
- }
- else
- if ($config_temp[$i][0] == "search")
- {
- $search_arr [] = $config_temp[$i][1];
- }
- }
- //add ns
- for ($i=0; $i<3; $i++)
- {
- if ($i < count ($ns_arr))
- {
- $host_arr [] = $ns_arr[$i];
- }
- else
- {
- $host_arr [] = "";
- }
- }
- //add search
- for ($i=0; $i<3; $i++)
- {
- if ($i < count ($search_arr))
- {
- $host_arr [] = $search_arr[$i];
- }
- else
- {
- $host_arr [] = "";
- }
- }
- $ret = array ($iface_arr, $host_arr);
- return $ret;
- ';
- ?>