
在mac上获取本地IP地址
var os = require('os');
var IPv4,hostName;
hostName=oshostname();
for(var i=0;i<osnetworkInterfaces()en0length;i++){
if(osnetworkInterfaces()en0[i]family=='IPv4'){
IPv4=osnetworkInterfaces()en0[i]address;
}
}
consolelog('----------local IP: '+IPv4);
consolelog('----------local host: '+hostName);
在ubuntu server上获取本地IP地址
var os = require('os');
var IPv4,hostName;
hostName=oshostname();
for(var i=0;i<osnetworkInterfaces()eth0length;i++){
if(osnetworkInterfaces()eth0[i]family=='IPv4'){
IPv4=osnetworkInterfaces()eth0[i]address;
}
}
function readLog(date,type,operation){//函数接受3个参数,日期、精度(天时分秒)和 *** 作(查找、刷新或者默认) if(date){ //如果有时间参数则对时间参数进行处理(一般日志名称都是时间加类型) var dataStr = arguments[0]; var date = dataStrslice(0,10); var hour = dataStrslice(11,13); var minute = dataStrslice(11,16); var second =dataStrslice(11,19); var type = arguments[1]; //获取精度
}else{ //若无时间参数则获取当前时间,然后精度默认 var date = new Date(+new Date()+836001000)toISOString()replace(/T/g,' ')replace(/\[\d]{3}Z/,'')slice(0,10); var type=null;
} var op = arguments[2]; var countResult = 0; //对日志结果进行统计 var logPath = appDirNameslice(0,-3)+'log\\'+'ivsvr_'+date+'log'; //拼接日志文件名称 var logStr = '';
fsstat(logPath, function (err, stats) { //获取对应的日志文件状态 if(err){ //日志不存在或者异常处理信息
$('#logTipInfo tr td')html('无日志信息可供查看'); consolelog(err);
}else{ var lineCount = 0; var readline = require('readline'); var fReadName = logPath; var fRead = fscreateReadStream(fReadName); var objReadline = readlinecreateInterface({ input: fRead,
}); //按行读取日志
objReadlineon('line', (line)=>{ var itemStr = $trim(line); var time = itemStrslice(0,19); var content = itemStrsubstr(20); if(!time || !content){return;}
++ lineCount; //计数行数 var matched = true; var itemStr = $trim(line); var itemArr = itemStrsplit(' '); var logDate = itemArr[0]; var logTime = itemArr[1]; var time = logDate+' '+logTime; switch(type){ //进度查找过滤 case '0': case null:
matched = true; break; case '1': var timeSplit = logTimeslice(0,2); if(timeSplit == hour){
matched = true; break;
}
matched = false; break; case '2': var timeSplit = logTimeslice(0,5); if(timeSplit == minute){
matched = true; break;
}
matched = false; break; case '3': var timeSplit = logTimeslice(0,8); if(timeSplit == second){
matched = true; break;
}
matched = false; break; default: consolelog('unkonw type!'); break;
} if(matched === true &&(lineCount>logReadFlag)){ //日志结果格式化输出呈现
countResult ++; var result = itemArr[2]; if(result == 'err'){ var operation = itemArr[4];
result = '失败:'+itemArr[5]+' '+(itemArr[6]itemArr[6]:'');
}else{ var operation = itemArr[4]+' '+itemArr[5]+(itemArr[6]itemArr[6]:'');
result = '成功';
}
logStr += '<tr><td>'+time+'</td><td>'+operation+'</td><td>'+result+'</td></tr>'
}
logStr += '<tr><td>'+time+'</td><td>'+content+'</td></tr>'
}); objReadlineon('close', ()=>{ if(logReadFlag == 0 && (logStr == '')){ var info = '无日志信息可供查看';
} if(logReadFlag >0 && (logStr != '')){ var newLogNum = lineCount - logReadFlag; var info = '刷新成功,更新'+newLogNum+'条日志!';
$('#logInfoTable')prepend(logStr);
}else if(logReadFlag >0 && (logStr == '')){ var info = '刷新成功,无日志更新!';
}else{
$('#logInfoTable')html(logStr);
} if(op == 'search'){ var info = '查找到'+countResult+'条日志';
}
$('#logTipInfo tr td')html(info); if((op == 'search' || op == 'refresh') &&(logReadFlag != 0 || newLogNum >0 || countResult >0)){
setTimeout(function() {$('#logTipInfo')fadeOut(567);}, 2000); // *** 作结束后给出信息反馈,反馈自动淡出消失
} else{
$('#logTipInfo')hide();
}
logReadFlag = lineCount; consolelog('closed');
});
}
});
}
nodejs 运行代码可以在命令行中使用命令“ node /path/xxxjs ”来执行
所以我们可以借助 java 的 Runtime 类,可以执行系统本地的命令, 例如:
Linux系统下:RuntimegetRuntime()exec("node /path/xxxjs");
Window系统下:RuntimegetRuntime()exec("cmd /c node /path/xxxjs");
当然推荐使用 Apache-Commons-Exec 工具类,可以屏蔽不同系统命令差异,并且获取结果更简单
工具类使用可以参考此文: 网页链接
方法说明:
该函数用来创建一个>
以上就是关于如何用node.js 获取访问者的公网IP全部的内容,包括:如何用node.js 获取访问者的公网IP、nodejs怎么获取当前请求的日志、请问怎么写java调用node环境运行js代码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)