1

I'm currently working on our network monitoring system (NMS) project, and I want to know if there's a way for me to pinpoint where each PC is currently at. Say, for example, we have a room with 40 PCs in it, is it possible for our NMS to tell which PC is in which physical location?

Being able to tell whether or not two or three PC's switched places inside the room by using their exact position would be useful for what I'm doing.

2
  • It depends on the precise details of the hardware you're working with and what kind of access you have. For example, if they have USB ports and you can deploy software to them, you can deploy a program that causes a system to alert you (say, by email) when a new USB device connects to it. Then just attach a USB flash drive to each machine in turn, keeping track of the connection order. Feb 25, 2015 at 6:28
  • Logical or physical position? I mean if you want to know if a computer with a specific MAC Address is connected as 192.168.1.122 instead of 192.168.1.123 to the 3rd port of the switch,it depends on you hardware but it's not so difficult.Maybe it is interesting for you.You need to prevent users to change the machine MAC and IP address.You can set SSH-KEYS in all machines and an alarm program to activate it from remote:so you may ring a bell on each computer.
    – Hastur
    Feb 25, 2015 at 7:27

3 Answers 3

9

The tool for finding a computer's physical location based nothing more than its network cable is politely referred to as an "intern".

Your intern tool may well request, and be greatly assisted by something called a cable tracer/toner/mapper/identifier, but if I did it by hand or with an arp table and a command line, so can anyone. Once identified, labeling both ends of the cable, as well as both ports the cable is connected to is advised to prevent needing to actually physically trace the cables or scour arp tables the next time someone asks.

Having said that, it's not common for a network monitoring system to monitor client PCs/workstations, but if you want to anyway, it is possible.

Other than physical identification, however, there is no feasible way to monitor or retrieve a computer's location based on just a wired connection. However, since wireless signals can be correlated with a physical position based on triangulation, it is possible to monitor and trace computers with the addition of a little hardware. Many (if not most) pieces of wireless networking equipment these days has such location tracking abilities built in, often with a built in client mapping capability, such as Cisco's Meraki line of access points does:

enter image description here

Using such a product is a good way to approximately track the physical loctaion of anything using wifi, which can include standard desktops, if you add a wireless NIC.

Achieving the same physical correlation with a roll-your-own solution is also possible with RFID tags and the appropriate hardware. This can be as simple and cheap as a smartphone and and attaching a consumer RFID tag technology like Trackr or Tile or similar offerings to a computer, or as complex as the systems many larger distributors use to track products within their warehouses.

1

Not really. Most computers don't have GPS built in (or another implementation of that same sort of concept).

Here is what you can do:

Giving computers sensible names (like "northwall-desktop-5") is a common practice. Something like this is very commonly done.

Have each computer be plugged into a smart switch. You could even assign different VLANs to different ports. Then, by figuring out which VLAN a device is plugged into, you could get some information about what port it is plugged into. Or, instead of using VLANs, you could use a different sort of technique like using different /30 subnets based on what port a device is in. These techniques might not scale super easily, but they are technically possible. Some additional thought/consideration might be needed if you were thinking of trying to do this for hundreds of computers. This ought to be technically feasible (for 40 computers), but may require so much effort to set up configuration to do this that you find it isn't worthwhile. That may depend on just what your goals are, and what you find is higher priority (e.g. information, or cost/complexity). Your ability to implement this may also depend a bit on your hardware: e.g. "managed switches" may be more useful than "dumb switches".

Wi-Fi access points might be able to tell you how strong a signal is: this might tell you if a device is close to a Wi-Fi access point.

If you have a cable tester, you may be able to figure out some interesting details, like how long the cabling is between a couple of points. That probably won't help you with any sort of automated solution, but the technology is close enough to what you're asking that I thought I'd mention it.

You can install cameras in a room, and digitally record what happens, if you're concerned about people making unauthorized changes.

If, by "PC", you mean laptops that might leave the room, then very often you may have different IP addresses, so that may be an effective and easy way to tell some details like whether a PC is using a wired network in a certain room, or if a computer is using specific Wi-Fi devices. Geo-IP is a technology that can convert public IP addresses to locations; it is an inexact science, but often gets some details right (like which continent a device is at... perhaps far more accurate than that, or perhaps not).

If you can access the device, you may be able to enable input, like a webcam (built into some laptops) or microphone... that may give you some input that can be used to determine if the device is near a loud source of noise.

A lot of these ideas may be a bit far-fetched, and might not be super practical/economical for business purposes. But you were pretty vague about your goals, so I just threw out some ideas about what is technically feasible.

2
  • Is there anyway I can get the ports each computer is connected to?
    – Ernest Faytone
    Feb 25, 2015 at 6:39
  • 1
    Yes. There are technologies to do that, including VLANs, custom subnets, and Network Access Control/Network Access Protection. You can figure out what MAC address connects to a port; your inventory (possibly automatically generated from your monitoring solution) may be able to tell you which computer should use that MAC address. These may be advanced techniques that require significant knowledge to set up. So expect to invest in professional networking (hire a pro, or train yourself to become one). Furthermore, they may not be possible with just a "dumb switch".
    – TOOGAM
    Feb 25, 2015 at 6:45
1

Assuming that Ethernet ports in the wall correspond to physical locations (and assuming ethernet is used instead of wifi) if there is a managed switch attached to the other end of the ports then you can simply query the device that is attached to each port (and identify it by MAC address) using your favorite SNMP tool.

2
  • Is there a Universal SNMP tool that applies to every brand of switches? Can you site some SNMP tools? Thanks
    – Ernest Faytone
    Feb 25, 2015 at 7:50
  • @ErnestFaytone I personally prefer to use snmp4j.org and hand roll my own Network Monitoring solutions. sourceforge.net/projects/mbrowse looks like it would do the job if you want a GUI... Just be aware that you need a real switch or router (so a managed device. ) and not some $10 from the local kmart switch.
    – Damian Nikodem
    Feb 25, 2015 at 7:57

You must log in to answer this question.