73 lines
1.5 KiB
JavaScript
73 lines
1.5 KiB
JavaScript
//@ts-check
|
|
const ip = require('../../core/ip')
|
|
const fs = require('fs')
|
|
const { exit } = require('process')
|
|
|
|
function usage() {
|
|
console.log('invalid syntax')
|
|
console.log('ifup [interface name]')
|
|
}
|
|
|
|
if ( process.argv.length !== 4 ){
|
|
usage()
|
|
exit(1)
|
|
}
|
|
|
|
if ( !fs.existsSync('/sys/class/net/' + process.argv[3]) ) {
|
|
console.log("Interface not found")
|
|
exit(1)
|
|
}
|
|
|
|
|
|
let flagsStr = ''
|
|
let flags = ip.getFlags(process.argv[3])
|
|
|
|
if(flags & ip.flags.IFF_ALLMULTI) {
|
|
flagsStr += 'IFF_ALLMULTI\n'
|
|
}
|
|
if(flags & ip.flags.IFF_AUTOMEDIA) {
|
|
flagsStr += 'IFF_AUTOMEDIA\n'
|
|
}
|
|
if(flags & ip.flags.IFF_BROADCAST) {
|
|
flagsStr += 'IFF_BROADCAST\n'
|
|
}
|
|
if(flags & ip.flags.IFF_DEBUG) {
|
|
flagsStr += 'IFF_DEBUG\n'
|
|
}
|
|
if(flags & ip.flags.IFF_DYNAMIC) {
|
|
flagsStr += 'IFF_DYNAMIC\n'
|
|
}
|
|
if(flags & ip.flags.IFF_LOOPBACK) {
|
|
flagsStr += 'IFF_LOOPBACK\n'
|
|
}
|
|
if(flags & ip.flags.IFF_MASTER) {
|
|
flagsStr += 'IFF_MASTER\n'
|
|
}
|
|
if(flags & ip.flags.IFF_MULTICAST) {
|
|
flagsStr += 'IFF_MULTICAST\n'
|
|
}
|
|
if(flags & ip.flags.IFF_NOARP) {
|
|
flagsStr += 'IFF_NOARP\n'
|
|
}
|
|
if(flags & ip.flags.IFF_NOTRAILERS) {
|
|
flagsStr += 'IFF_NOTRAILERS\n'
|
|
}
|
|
if(flags & ip.flags.IFF_POINTOPOINT) {
|
|
flagsStr += 'IFF_POINTOPOINT\n'
|
|
}
|
|
if(flags & ip.flags.IFF_PORTSEL) {
|
|
flagsStr += 'IFF_PORTSEL\n'
|
|
}
|
|
if(flags & ip.flags.IFF_PROMISC) {
|
|
flagsStr += 'IFF_PROMISC\n'
|
|
}
|
|
if(flags & ip.flags.IFF_RUNNING) {
|
|
flagsStr += 'IFF_RUNNING\n'
|
|
}
|
|
if(flags & ip.flags.IFF_SLAVE) {
|
|
flagsStr += 'IFF_SLAVE\n'
|
|
}
|
|
if(flags & ip.flags.IFF_UP) {
|
|
flagsStr += 'IFF_SLAVE\n'
|
|
}
|
|
console.log(flagsStr) |