Solved

Determine My IP Address

Posted on 2003-10-27
8
14,333 Views
Last Modified: 2013-12-09
Hi,

I'm writing a perl script for firewall configuration and I need a way of determining my ip address into a variable.

Ie: The ip address of the person telnetted / ssh'd into the system and running the script.
0
Comment
Question by:Plucka
  • 5
  • 3
8 Comments
 
LVL 62

Expert Comment

by:gheist
ID: 9631988
and which exactly is the address you need???
netstat and ifconfig may become useful when combined with awk
0
 
LVL 18

Author Comment

by:Plucka
ID: 9632001
As above the IP address of the user running the script.
0
 
LVL 62

Expert Comment

by:gheist
ID: 9632830
ahh, so
for remote only:
$ who am i | awk -F" " '// { print $4}'
and same for ssh only:
SSH_CLIENT variable is set by OpenSSH server(disable telnet NOW)
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 62

Expert Comment

by:gheist
ID: 9632839
$ id -p
shows if su has been used...
0
 
LVL 18

Author Comment

by:Plucka
ID: 9632936
Ok,

That doesnt work cause my server returns a DNS name in the who am i bit, I used to do that.

From your other post I can get the IP address by doing

netstat -n | grep '192.168.1.11.22'

Which shows me the connection on port 22 to the server 192.168.1.11 This returns.

tcp4       0     20  192.168.1.11.22      192.168.1.60.4895    ESTABLISHED

which using your awk example i can do this.

netstat -n | grep '192.168.1.11.22' | awk -F" " '// { print $5}'

which gives me

192.168.1.60.4895

So i'm almost there, have little experience with awk, can you help me with the awk command to pull off the last .4895 bit.
0
 
LVL 18

Author Comment

by:Plucka
ID: 9632955
Ok if I add

netstat -n | grep '192.168.1.11.22' | awk -F" " '// { print $5}' -F"." '// {print $1$2$3$4}'

I get the ip address without the .'s ie (192.168.1.60 is shown as 192168160)  
0
 
LVL 62

Expert Comment

by:gheist
ID: 9633323
no need for grep:
netstat -n | awk -F" " '/192.168.1.11.22/ { print $5}' -F"." '// {print $1.$2.$3.$4}'
0
 
LVL 62

Accepted Solution

by:
gheist earned 500 total points
ID: 9633376
now you tell you have only ssh:

echo $SSH_CLIENT | awk '// {print $1}'
0

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

My previous tech tip, Installing the Solaris OS From the Flash Archive On a Tape (http://www.experts-exchange.com/articles/OS/Unix/Solaris/Installing-the-Solaris-OS-From-the-Flash-Archive-on-a-Tape.html), discussed installing the Solaris Operating S…
I have been running these systems for a few years now and I am just very happy with them.   I just wanted to share the manual that I have created for upgrades and other things.  Oooh yes! FreeBSD makes me happy (as a server), no maintenance and I al…
Learn how to navigate the file tree with the shell. Use pwd to print the current working directory: Use ls to list a directory's contents: Use cd to change to a new directory: Use wildcards instead of typing out long directory names: Use ../ to move…
This video shows how to set up a shell script to accept a positional parameter when called, pass that to a SQL script, accept the output from the statement back and then manipulate it in the Shell.

685 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