`

UUIDtools mac_address is nil on ubuntu

阅读更多
原因看代码:
def self.get_mac_address #:nodoc:
    if @@mac_address.nil?
      if RUBY_PLATFORM =~ /solaris/
        begin
                ifconfig_output = `/sbin/ifconfig -a`
                ip_addresses = ifconfig_output.scan(
                  /inet\s?(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/)
                ip = ip_addresses.find {|addr| addr[0] != '127.0.0.1'}[0]
                @@mac_address = `/usr/sbin/arp #{ip}`.split(' ')[3]
        rescue Exception
        end
      elsif RUBY_PLATFORM =~ /win/ && !(RUBY_PLATFORM =~ /darwin/)
        begin
          ifconfig_output = `ipconfig /all`
          mac_addresses = ifconfig_output.scan(
            Regexp.new("(#{(["[0-9a-fA-F]{2}"] * 6).join("-")})"))
          if mac_addresses.size > 0
            @@mac_address = mac_addresses.first.first.downcase.gsub(/-/, ":")
          end
        rescue
        end
      else
        begin
          mac_addresses = []
          if RUBY_PLATFORM =~ /netbsd/
            ifconfig_output = `/sbin/ifconfig -a 2>&1`
            mac_addresses = ifconfig_output.scan(
              Regexp.new("address\: (#{(["[0-9a-fA-F]{2}"] * 6).join(":")})"))
          elsif File.exists?('/sbin/ifconfig')
            ifconfig_output = `/sbin/ifconfig 2>&1`
            mac_addresses = ifconfig_output.scan(
              Regexp.new("ether (#{(["[0-9a-fA-F]{2}"] * 6).join(":")})"))
            if mac_addresses.size == 0
              ifconfig_output = `/sbin/ifconfig -a 2>&1`
              mac_addresses = ifconfig_output.scan(
                Regexp.new("ether (#{(["[0-9a-fA-F]{2}"] * 6).join(":")})"))
            end
            if mac_addresses.size == 0
              ifconfig_output =
                `/sbin/ifconfig | grep HWaddr | cut -c39- 2>&1`
              mac_addresses = ifconfig_output.scan(
                Regexp.new("(#{(["[0-9a-fA-F]{2}"] * 6).join(":")})"))
            end
          else
            ifconfig_output =
              `ifconfig 2>&1`
            mac_addresses = ifconfig_output.scan(
              Regexp.new("ether (#{(["[0-9a-fA-F]{2}"] * 6).join(":")})"))
            if mac_addresses.size == 0
              ifconfig_output =
                `ifconfig -a 2>&1`
              mac_addresses = ifconfig_output.scan(
                Regexp.new("ether (#{(["[0-9a-fA-F]{2}"] * 6).join(":")})"))
            end
            if mac_addresses.size == 0
              ifconfig_output =
                `ifconfig | grep HWaddr | cut -c39- 2>&1`
              mac_addresses = ifconfig_output.scan(
                Regexp.new("(#{(["[0-9a-fA-F]{2}"] * 6).join(":")})"))
            end
          end
          if mac_addresses.size > 0
            @@mac_address = mac_addresses.first.first
          end
        rescue
        end
      end
      @@mac_address.downcase! if @@mac_address.respond_to?(:downcase!)
      @@mac_address.strip! if @@mac_address.respond_to?(:strip!)
      # Verify that the MAC address is in the right format.
      # Nil it out if it isn't.
      unless @@mac_address.respond_to?(:scan) &&
          @@mac_address.scan(/#{(["[0-9a-f]{2}"] * 6).join(":")}/)
        @@mac_address = nil
      end
    end
    return @@mac_address
  end


从这个代码上就能看出 mac address 是通过 ifconfig 命令里得到而且还是通过 HWaddr 过滤得到的。
所以控制台显示结果是除英语外的语言就会出这个问题.

解决方案:
sudo vi /etc/bash.bashrc
在最下面添加: 
export LANG=C


相关资料:
http://github.com/sporkmonger/uuidtools/
http://wiki.ubuntu.org.cn/index.php?title=Locale&variant=zh-tw#.E4.B8.83.E3.80.81.E6.80.8E.E6.A0.B7.E8.AE.BE.E5.AE.9Alocale.E5.91.A2.EF.BC.9F
分享到:
评论

相关推荐

    MAC地址获得.rar_delphi mac_mac_mac address_获得Mac地址

    在IT领域,MAC(Media Access Control)地址是一个用于标识网络硬件设备的独特地址,通常与网卡(NIC,Network Interface Card)绑定。MAC地址是物理地址,由48位二进制组成,通常以12个十六进制数字表示,如00:11:...

    to_nil:to_nil 宝石

    安装将此行添加到应用程序的 Gemfile 中: gem 'mr_to_nil' 然后执行: $ bundle或者自己安装: $ gem install mr_to_nil用法 [ :random , :array ] . to_nil # nil31337 . to_nil # nil"Yet another shitty gem" . ...

    cocos2dx_LUA_RichLabel

    RichLabel._fontName = nil RichLabel._fontSize = nil RichLabel._fontColor = nil RichLabel._containLayer = nil --装载layer RichLabel._dimensions = nil RichLabel._spriteArray = {} --精灵数组 RichLabel._...

    ZXing QRCode Scan

    file_url = nil; wid_ctrl.custom_msg = @"请扫瞄离您最近的iMall二维码,以获取到目的地的路线"; NSMutableSet *readers = [[NSMutableSet alloc] init]; QRCodeReader *qrcode_reader = [[QRCodeReader alloc]...

    nil_or:执行除非 Nil

    gem 'nil_or' 然后执行: $ bundle 或者自己安装: $ gem install nil_or 用法 我什么时候需要它? 而不是写: date_of_birth = params [ :date_of_birth ] ? params [ :date_of_birth ] . to_date : nil ...

    exconstructor:一个 Elixir 库,用于生成轻松处理外部数据的结构构造函数

    构造函数 ExConstructor 是一个 Elixir 库,可以轻松地从外部数据(例如 JSON ...例子 defmodule TestStruct do defstruct field_one: nil , field_two: nil , field_three: nil , field_four: nil use ExConstructoren

    Rails的邮件预览引擎MailsViewer.zip

    address: "localhost", port: 25, domain: 'localhost.localdomain', user_name: nil, password: nil, authentication: nil, enable_starttls_auto: true }, send_if: lambda { |mail| mail.destinations....

    文件映射示例-FISH制作

    HMap := CreateFileMapping(INVALID_HANDLE_VALUE, nil, PAGE_READWRITE, 0, 4 * 1024, 'MemorySharedFile'); if HMap=0 then TS('试图建立成功'); end; {我觉得单个功能的文件映射更能够让使用者快速的掌握...

    Delphi获取本机所有网卡MAC和IP(支持多网卡).rar

    [Adapters[I].ai_address[0], Adapters[I].ai_address[1], Adapters[I].ai_address[2], Adapters[I].ai_address[3], Adapters[I].ai_address[4], Adapters[I].ai_address[5]]); // IP处理在这里 end; end ...

    default_value_for-matchers:用于default_value_for gem的RSpec匹配器

    您可以使用have_default_value_for匹配和with_value , and_allow_nil , and_disallow_nil submatchers。 例如: # app/models/user.rb class User < ActiveRecord :: Base default_value_for :name , 'no ...

    Fundamentals_of_Digital_Image_Processing_-_Anil_K_图形图像处理_PDF_

    In this a DFT based Digital Image Watermarking Scheme is developed. Digital image watermarking is a technology for imperceptibly embedding various types of information into an image. The biggest ...

    D7 隐藏状态栏中的时间源代码.rar

     hd:=findwindowex(findwindowex(findwindow('shell_traywnd',nil),0,'traynotifywnd',nil),0,'trayclockwclass',nil);  if hd<>0 then  showwindow(hd,sw_hide)  end;  //显示状态栏时间,单击“显示”按钮后...

    自定义开关按钮(ios)

    NSMutableArray *unselectImages = [[NSMutableArray alloc]initWithObjects:normal_left, normal_right, nil]; [normal_left release]; [normal_right release]; UIImage *select_left = [[UIImage alloc] ...

    swift-is-camera-on检查Mac摄像头开启状态或发送开启通知

    这个项目提供了一个名为`is-camera-on`的工具,可以帮助开发者轻松地检查Mac电脑的摄像头开启状态,并在摄像头被开启时发送通知。 首先,我们要理解Swift中的访问系统硬件资源的方式。在macOS中,由于隐私保护政策...

    street-address:以字符串检测和剖析美国街道地址

    描述 解析返回规范化Address对象的字符串。 如果字符串不是美国地址,则返回nil。... gem 'StreetAddress' , :require => "street_address" 基本用法 require 'street_address' address = StreetA

    Delphi获取本机IP、名称、网卡MAC等信息..rar

    ai_current_address: array [0..MAX_ADAPTER_ADDRESS_LENGTH - 1] of Byte; aiPermanentAddress: array [0..MAX_ADAPTER_ADDRESS_LENGTH - 1] of Byte; ai validoemmetrics: DWORD; ai_omacaddress: array [0..8...

    delphi编写的获取IP地址,MAC地址例子

    MAC地址(Media Access Control Address)是物理网络接口控制器的硬件地址,用于识别网络上的设备。它是一个48位的二进制数,通常以六组两进制数表示,每组之间用冒号或破折号分隔,如00:14:22:01:23:45。MAC地址在...

    ex_phone_number:libphonenumber的Elixir端口

    电话号码 Elixir库,用于解析,格式化和验证国际电话号码。 基于Google的 (当前元数据版本:8.10.2... PhoneNumber { country_code: 41 , country_code_source: nil , extension: nil , italian_leading_zero: nil ,

    what_number_is_left_out

    标题 "what_number_is_left_out" 指向的是一个编程挑战,它要求找出一系列数字中缺失的那个数字。在这个挑战中,用户需要编写一个名为 `what_number_is_left_out.rb` 的 Ruby 脚本来解决这个问题。从描述来看,可能...

    rbtree_ubuntu_kenerl5.2.2.rar

    在学习和研究`rbtree_ubuntu_kenerl5.2.2.rar`的内容时,你需要理解红黑树的基本概念、插入和删除算法的细节,以及如何在实际编程中应用这些知识。同时,阅读`rbtree.txt`可以帮助你深入理解Linux内核中红黑树的实现...

Global site tag (gtag.js) - Google Analytics