Solved

Resolve MAC addresses?

Posted on 1998-09-16
8
287 Views
Last Modified: 2013-12-25
Is there some kind of variable (like cgi.remote_host for ip's) for retriving MAC addresses? I am using IIS3 and Cold Fusion 3.
Thanks for your help.
0
Comment
Question by:jagoodie
  • 3
  • 2
  • 2
  • +1
8 Comments
 
LVL 7

Expert Comment

by:faster
ID: 1828638
The answer is definetly NO.  A browser never send the MAC address to the server.  If you really need it, you can consider to write an ActiveX control, which get the MAX address by itself and then fill it in the form using VB script (or directly talk to the server).
0
 
LVL 2

Author Comment

by:jagoodie
ID: 1828639
Pretty cockey to think you are the end all know it all (if I don't know it, it doesn't exist attitude).
Thanks for your comment/opionion.
0
 
LVL 7

Expert Comment

by:faster
ID: 1828640
It is not that I know it all, but I did read the whole http 1.0 and http 1.1 protocol, all the information sent from a browser are based on these two protocols.  So if you have a look at the these two RFCs, you will know that it is not possible that a browser will ever send this kind of information to the server, unless you send it by yourself, that is, writing your own ActiveX or the kind.
0
 
LVL 2

Author Comment

by:jagoodie
ID: 1828641
my point is that someone has this code that i am looking for and i am hoping that they read this question, and if i accept your answer then i have to learn programming just to get this script.
any idea where i would find this script?
0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 
LVL 11

Expert Comment

by:mouatts
ID: 1828642
faster is correct in that the client does not send back the MAC address. To do so would require the application protocol to understand the details of the lower level protocols which runs contrary to the entire approach of network communications.

There are functions within the WINSOCK API that will allow you to obtain the MAC address from an IP address but to utilise these you will need to learn how to write programs.

But given I can't see what you will use these four unless you are writing a program I can't see your problem.

Incidently its worth remembering that the IP address (and thus the resultant MAC address) will not always be that of the client but that of a proxy that the client has accessed you site through.

Steve
0
 
LVL 2

Author Comment

by:jagoodie
ID: 1828643
if this is the answer, faster deserves the points.
i am not collecting outside our LAN, in is for internal use- maintaining a bootp table, so i don't care about any proxys.
0
 
LVL 11

Expert Comment

by:mouatts
ID: 1828644
Fine then award them. Just because you don't like an answer is not the reason to reject an answer.

Incidently using WEB access to maintain a bootp table is a recipe for disaster.

Steve
0
 
LVL 5

Accepted Solution

by:
thoellri earned 100 total points
ID: 1828645
As said before by faster and mouatts, the MAC address of a system connecting to you server is not available in the environment. All you get is the ip-address and/or hostname of the system talking to your server. However, for packets being transported back to the system in question, the MAC address has to be know.
You can try the following from a CMD.EXE seesion: After getting the IP-address from the cgi.remote_host field, ping the system using "ping ip-address". Now do a "arp -a"  and look for the ip-address of the system you just pinged. You will see that the matching MAC-address appears in the second column.
A look through the Windows Socket 2 documentation should get you on the right track.
Here is what I did for UNIX/Perl5. The following sub gets either ip or mac-address and return ip and MAC-address (filling in the missing one). This is done after the system has been pinged to make sure that the MAC/IP-addresses are known to ARP:
sub fromarp {
    my($ip,$ether) = @_;
    my ($a_name, $a_ether, $a_ip, $addr);
    open(PIPE,"arp -a|") || return (undef, undef);
    while (<PIPE>) {
        chomp;
        $addr=undef;
        if (/^\S+\s+(\S+)\s+.*\s+([\dabcdef:]+)$/) {
            $a_name=$1;$a_ether=$2;
            if ($addr=gethostbyname($a_name)) {
                $addr=inet_ntoa($addr);
            }
        } else {
            next;
        }
        if (defined($ip)) {
            if (defined($addr) && ($ip eq $addr)) {
                $ether=$a_ether;
                last;
            }
        } else {
            if (defined($addr) && ($ether eq $a_ether)) {
                $ip=$addr;
                last;
            }
        }
    }
    close(PIPE);
    return ($ip, $ether);
}

Hope this helps
Tobias
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

It is a general practice to get rid of old user profiles on a computer  in a LAN environment. As I have been working with a company in a LAN environment where users move from one place to some other place at times. This will make many user profil…
This article will show, step by step, how to integrate R code into a R Sweave document
This tutorial will teach you the core code needed to finalize the addition of a watermark to your image. The viewer will use a small PHP class to learn and create a watermark.
In this seventh video of the Xpdf series, we discuss and demonstrate the PDFfonts utility, which lists all the fonts used in a PDF file. It does this via a command line interface, making it suitable for use in programs, scripts, batch files — any pl…

759 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

Need Help in Real-Time?

Connect with top rated Experts

20 Experts available now in Live!

Get 1:1 Help Now