⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 network.lua.svn-base

📁 嵌入式无线路由系统openwrt的web配置工具
💻 SVN-BASE
字号:
#!/usr/bin/lua-- Copyright (C) 2008 OpenRB.comrequire('fslib')-- get all current system interfacesifaces = proc('if-json -a')file = 'network'wififile = 'wireless'os.execute('touch /etc/config/network')os.execute('touch /etc/config/wireless')ifnames = {}wifiifs = {}cfgnames = uci.get_all(file)wificfgs = uci.get_all(wififile)-- create list of interface namesfor ifname, props in pairs(ifaces) do  if (props['type'] == 'Ethernet' and not ifname:find('^ath') and not ifname:find('^br--')) then    -- ethernet type interface, add to list    ifnames[ ifname ] = ''  elseif (ifname:find('^wifi')) then    -- wireless, check if already added later    wifiifs[ ifname ] = ''    ifnames[ ifname ] = ''  endend-- create ifname : cfgname pairsfor cfgname, props in pairs(cfgnames) do  ifname = string.gsub(props['ifname'], '^ath', 'wifi')  if (ifnames[ ifname ] ~= nil) then    ifnames[ ifname ] = cfgname  endend-- create section for ifnames with no cfgnamefor ifname, cfgname in pairs(ifnames) do  if (cfgname == '') then    cfgname = iftocfgr(ifname)    ifnames[ ifname ] = cfgname        ifname = string.gsub(ifname, '^wifi', 'ath')    -- set required uci values    uci.set(file, cfgname, 'interface')    uci.set(file, cfgname, 'ifname', ifname)    uci.set(file, cfgname, 'proto', 'none')  else    ifnames[ ifname ] = nil  endenduci.commit(file)startwifi = false-- set config values for wirelessfor ifname, _ in pairs(wifiifs) do  if (wificfgs[ ifname ] == nil) then    uci.set(wififile, ifname, 'wifi-device')    uci.set(wififile, ifname, 'type', 'atheros')    uci.set(wififile, ifname, 'channel', 'auto')        cfgname = ifname .. 'if'    uci.set(wififile, cfgname, 'wifi-iface')    uci.set(wififile, cfgname, 'device', ifname)    uci.set(wififile, cfgname, 'mode', 'sta')    uci.set(wififile, cfgname, 'ssid', 'FlashSYS')    uci.set(wififile, cfgname, 'encryption', 'none')        startwifi = true  elseif (wificfgs[ ifname ].disabled == '1') then    uci.set(wififile, ifname, 'disabled', '0')    startwifi = true  endend-- remove wireless bridges, use proper bridges insteadfor cfgname, props in pairs(wificfgs) do  if (props['.type'] == 'wifi-iface' and props['network']) then    uci.delete(wififile, cfgname, 'network')  endend-- rate detection for wirelesswifiratesraw = readlines('dmesg | grep ^wifi | grep rates', 0, true)wifirates = { '11a', '11b', '11g' }wifireset = {}for _, wifirateraw in ipairs(wifiratesraw) do  ifnamesep = wifirateraw:find(':')  if ifnamesep then    ifname = wifirateraw:sub(1, (ifnamesep - 1))    if wifireset[ ifname ] == nil then      for _, wifirate in ipairs(wifirates) do        uci.set(wififile, ifname, wifirate, '0')      end      wifireset[ ifname ] = true    end    for _, wifirate in ipairs(wifirates) do      if wifirateraw:match(' ' .. wifirate .. ' ') then        uci.set(wififile, ifname, wifirate, '1')      end    end  endenduci.commit(wififile)-- init newly added interfacesfor ifname, cfgname in pairs(ifnames) do  os.execute('ifup ' .. cfgname)endif (startwifi) then  os.execute('wifi')end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -