私は私のWebページをPythonで持っています。ユーザーのIPアドレスを取得できます。私たちのWebページにアクセスします。ユーザーのPCのMACアドレスを取得します。 、それはPythonで可能です、我々はLinuxのPCを使用している、我々はそれをLinux上で取得したい。リモートPCのMACアドレスを取得したい
答えて
あなたがアクセスできるのは、ユーザーがあなたに送信したものです。
MACアドレスはそのデータの一部ではありません。
#!/usr/bin/env python
import ctypes
import socket
import struct
def get_macaddress(host):
""" Returns the MAC address of a network host, requires >= WIN2K. """
# Check for api availability
try:
SendARP = ctypes.windll.Iphlpapi.SendARP
except:
raise NotImplementedError('Usage only on Windows 2000 and above')
# Doesn't work with loopbacks, but let's try and help.
if host == '127.0.0.1' or host.lower() == 'localhost':
host = socket.gethostname()
# gethostbyname blocks, so use it wisely.
try:
inetaddr = ctypes.windll.wsock32.inet_addr(host)
if inetaddr in (0, -1):
raise Exception
except:
hostip = socket.gethostbyname(host)
inetaddr = ctypes.windll.wsock32.inet_addr(hostip)
buffer = ctypes.c_buffer(6)
addlen = ctypes.c_ulong(ctypes.sizeof(buffer))
if SendARP(inetaddr, 0, ctypes.byref(buffer), ctypes.byref(addlen)) != 0:
raise WindowsError('Retreival of mac address(%s) - failed' % host)
# Convert binary data into a string.
macaddr = ''
for intval in struct.unpack('BBBBBB', buffer):
if intval > 15:
replacestr = '0x'
else:
replacestr = 'x'
macaddr = ''.join([macaddr, hex(intval).replace(replacestr, '')])
return macaddr.upper()
if __name__ == '__main__':
print 'Your mac address is %s' % get_macaddress('localhost')
これは、ARPがネットワークの境界を通過しないため、ローカルネットワーク上でのみ機能します。 – tvanfosson
はい私はそれに同意します..それは彼または私はこの – joe
を削除する必要があるかもしれないと彼はまた、Linuxについて言及:)しかし、それは私のために有用です:) –
私は小さなを持っている、これを行うには、リモートコンピュータ上でJava 6のランタイムを必要とするJavaアプレットは、署名しました。 NetworkInterfaceのgetHardwareAddress()メソッドを使用してMACアドレスを取得します。私はこれを呼び出すアプレットのメソッドにアクセスするためにjavascriptを使用し、アドレスを含むJSONオブジェクトを返します。これは、フォーム内の隠しフィールドに詰め込まれ、残りのフィールドと共にポストされます。
dpktパッケージは、already mentionedでした。 TCP/IPパケットの解析が可能です。私はまだあなたのケースでそれを使用していません。
- 1. リモートPCのMACアドレスを取得しますか?
- 2. リモートPCのMACアドレスを取得するQt C++
- 3. PCの安定したMACアドレスを取得する方法は?
- 4. MACアドレスを取得
- 5. 私のネットワーク(リモート)にないコンピュータのMACアドレスからMACアドレス
- 6. UBUNTU:リモートMACアドレスからリモートシステムのIPアドレスを取得するShellコマンド?
- 7. コンピュータのMACアドレスを取得
- 8. SilverlightでMACアドレスを取得
- 9. モノでMACアドレスを取得
- 10. 永久MACアドレスを取得
- 11. MACアドレスの取得arp -a
- 12. リモートPC/MACへのIOSブルートゥースシリアル接続
- 13. 訪問者のPCのMACアドレスをASP.NET WebAppで取得する方法は?
- 14. Retrive MAC ...私はMACのIPアドレスをアドレス取得するLINQ
- 15. アンドロイドイーサネットMACアドレスを取得します。
- 16. JAVASCRIPT/PHPを使用しているローカルPCのMacとIPアドレスを取得し、データベースに保存しますか?
- 17. Netty:messageReceivedでのリモートIPアドレスの取得
- 18. 私はlan pcで目を覚ますためにバイトのMACアドレスを取得します
- 19. Python on AWSリモートIPアドレスを取得
- 20. ブラックベリーデバイスのBluetooth MACアドレスを取得
- 21. リモートホストのMACアドレスを取得する
- 22. JavaでシステムのMACアドレスを取得
- 23. iPad/iPhone MAC/Wifiアドレスを取得する
- 24. adbからBluetooth MACアドレスを取得
- 25. Objective-CでMACアドレスを取得する
- 26. MACアドレスを取得するLinux(Ubuntu)
- 27. Windows Mobile - Bluetooth MACアドレスを取得する
- 28. エクスプレスリクエストオブジェクトからクライアントMACアドレスを取得
- 29. クライアントマシンからMACアドレスを取得
- 30. MACアドレスを取得する方法
私はもっと正確になっていたはずです。あなたのウェブサイトには、ウェブサーバーがあなたに明らかにするものがすべて表示されます。私が見たことから、MACアドレスはそのデータの一部ではありません。 – databyss
@Roberto:AFAIK MACはイーサネットプロトコルの一部であり、IPではありません。 –
MACアドレスは常にイーサネットパケットとともに送信されますが、パケットが別の回線に転送されるとルータ境界で停止します。クライアントが同じ物理ネットワーク上にある場合は、IPアドレスに対応するアドレスを取得するためにARPを実行できますが、それは限られたユーティリティのみです。 – tvanfosson