マシンに固定され、簡単に入手できる(クロスプラットフォーム)スクリプトの一意の文字列/数字として使用できるものを見つけることを試みています。私は、マシンにはネットワークカードがあると思います。私はそれが本当にユニークである必要はありませんが、必要なのは長期的かつ可能な限り稀に修正する必要があるということです。マシンの固定識別子(uuid.getnode)
私はMACを変更することができますし、私はおそらく私のスクリプトでそれについて警告するだろう知っているが、私は毎朝MACを変更する誰も期待していない。我々は、ランダムな48ビットの数
がい選ぶ
ハードウェアアドレスを取得するすべての試みが失敗した場合、:
私が思い付いたこと
uuid.getnode()
ですが、docsにありつまり、関数呼び出しごとに別の乱数が得られます。したがって、MACが入手できない場合は使用できません。...複数のネットワークインターフェイスを持つマシンでは、いずれか1つのMACアドレスが返されることがあります。
この文は
getnode()
は、利用可能なすべてからランダム(または最初の)MACを取得するということですか? MAC Aを最初に実行し、MAC Bを次回に取得するとどうなりますか?固定リスト(ソート、連結、tadaaa!)を取得すれば問題ありません。私は自分自身でテストする方法がないので、私は尋ねています。
私はこのコードでアンドロイドUUIDを取得することができません。私はAndroidのmarshmallowを使用していて、端末エミュレータをインストールしています。 'getprop'の完全なリストを見ることができますが、' ril.serialnumber'は存在しません。 root権限が必要ですか? – Gahan
@Gahanなぜ[このコメント](https://stackoverflow.com/questions/27368423/how-can-i-get-a-ril-serial-number-for-motorola-moto-x#comment43189061_27368423)をご覧くださいそれは馬鹿げている。むしろ残念ですが、すべてのメソッドで固有のデバイス識別子を取得するには、「バックアップ計画」が必要です。つまり、ファイル/文字列をハッシュ関数などにスローする必要があります。 [Kivy](http://kivy.org/)を使用している場合、[pyjnius](https://github.com/kivy/pyjnius/)で直接Android APIにアクセスできます(JNIが必要です)。 – KeyWeeUsr
私はkivyを使用していません。しかし、私はすべてのそれをuuid、os、sys、サブプロセスなどと一緒に付属しているデフォルトのモジュールを使用するPythonを持っています他のモジュールは、私が使用している既存のクロスコンパイルのために利用できません。 – Gahan