Solved

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

Posted on 2013-05-25
4
4,477 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

Flexible connectivity for any environment

The KE6900 series can extend and deploy computers with high definition displays across multiple stations in a variety of applications that suit any environment. Expand computer use to stations across multiple rooms with dynamic access.

Question has a verified solution.

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

Build an array called $myWeek which will hold the array elements Today, Yesterday and then builds up the rest of the week by the name of the day going back 1 week.   (CODE) (CODE) Then you just need to pass your date to the function. If i…
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 several ways to interact with files and get file information from the bash shell. ls lists the contents of a directory: Using the -a flag displays hidden files: Using the -l flag formats the output in a long list: The file command gives us mor…
The viewer will learn how to create and use a small PHP class to apply a watermark to an image. This video shows the viewer the setup for the PHP watermark as well as important coding language. Continue to Part 2 to learn the core code used in creat…

717 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