Solved

Get Mac address of Linux server via a PHP script running on server

Posted on 2013-05-25
4
4,274 Views
Last Modified: 2013-05-26
Hello (PHP, Linux) Experts,

I'm hoping to be able to restrict access to a PHP program I wrote, to one specific Ubuntu server, based on its Mac address, (i.e., access the Mac address and compare it against the Mac address stored in an obfuscated file on the server).

The program will be hosted on a client's Ubuntu server. I'm trying to restrict the operation of the program to this one specific server Mac address.

Is there a means of programmatically accessing the Mac address of the Linux server via PHP script?

Note: I've seen a half dozen PHP scripts that DO NOT WORK... or only work on Windows servers. I need some PHP code that will work on an Ubuntu Linux server.

Is it even possible to access the Mac address of a Linux server from a PHP program... or is Linux too smart?

Thanks!

Tom
0
Comment
Question by:PierceWeb
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
4 Comments
 
LVL 83

Expert Comment

by:Dave Baldwin
ID: 39197368
'ifconfig' where you would find the MAC address apparently requires elevated or root privileges.  You could 'sudo' your PHP program on the command line and get the information.  If you are running thru Apache, it would be more difficult to get the correct permissions.
0
 
LVL 7

Accepted Solution

by:
multimac earned 500 total points
ID: 39197491
Basically you want to run something easy like
<?
exec("/sbin/ifconfig | grep HWaddr", $output);
print_r( $output);
?>

Open in new window


gives you
Array
(
    [0] => eth0      Link encap:Ethernet  HWaddr ff:51:0a:0b:04:af
)

Now you can check if your $mac is a substring in the command output. You could also regexp or cut out the HWaddr.
0
 
LVL 2

Author Closing Comment

by:PierceWeb
ID: 39198127
multimac,

Thanks... that will work nicely!

Much appreciated.

Thanks,

Tom
0
 
LVL 83

Expert Comment

by:Dave Baldwin
ID: 39198134
Cool, I couldn't get a slightly different version to work yesterday but this one works on my Ubuntu system.  I suggest adding 'eth0' to the command or else on systems like mine where there are many IP addresses, you will get many lines of information.  And if they are simply additional IPs on the same interface, it just repeats the MAC address and other stuff over and over again.
<?
exec("/sbin/ifconfig eth0 | grep HWaddr", $output);
print_r( $output);
?>

Open in new window

0

Featured Post

How Do You Stack Up Against Your Peers?

With today’s modern enterprise so dependent on digital infrastructures, the impact of major incidents has increased dramatically. Grab the report now to gain insight into how your organization ranks against your peers and learn best-in-class strategies to resolve incidents.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

This article discusses four methods for overlaying images in a container on a web page
Many old projects have bad code, but the budget doesn't exist to rewrite the codebase. You can update this code to be safer by introducing contemporary input validation, sanitation, and safer database queries.
Learn how to get help with Linux/Unix bash shell commands. Use help to read help documents for built in bash shell commands.: Use man to interface with the online reference manuals for shell commands.: Use man to search man pages for unknown command…
This demo shows you how to set up the containerized NetScaler CPX with NetScaler Management and Analytics System in a non-routable Mesos/Marathon environment for use with Micro-Services applications.

696 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question