发布于2021-03-07 22:44 阅读(1695) 评论(0) 点赞(9) 收藏(2)
如果电脑主机名含有中文,在使用node
的os
模块的hostname()
方法获取到的主机名有可能会乱码,无论怎么转码都不对。于是本文不采用node
提供的hostname()
方法来获取主机名。取而代之的是采用cmd
的hostname
命令来获取主机名。
exports.getHostname = (cb) => {
cb = cb || function () {} // 赋默认值,以防调用getHostname方法时没传回调函数而报错
const iconv = require('iconv-lite') // 用于把获取到的中文从GB18030编码转为UTF-8编码
const { spawn } = require('child_process') // 用于执行CMD命令
const hostnameProcess = spawn('cmd', ['/c', 'hostname']) // 执行CMD命令,并且传入参数'hostname'
// 子进程标准输出,由于该输出是异步,所以需要回调函数cb
hostnameProcess.stdout.on('data', function (data) {
const buf = iconv.decode(data, 'GB18030')
const hostname = iconv.encode(buf, 'UTF-8').toString().trim()
cb(hostname) // 回调函数中传出hostname
})
}
const { getHostname } = require('./getHostname.js')
getHostname((hostname) => {
console.log(hostname)
})
作者:天使的翅膀
链接:http://www.qianduanheidong.com/blog/article/33577/81e168a217ffbbd775a5/
来源:前端黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 前端黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-3
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!