Welcome to the Linux Foundation Forum!

using wget, checkip.dyndns.org, and sed

I am trying to get my external Ip using cygwin on a Windows 7 box. I am almost there but I am having an issue with the sed substitution syntax. As you see, I am getting the IP, but I don't want the part of the output.

C:\>wget -q http://checkip.dyndns.org -O index1.html && sed "s/.*:\(.*\)<.*/\1/" index1.html<br />
208.106.78.22

Without the -q switch the output is:

Current IP CheckCurrent IP Address: 206.108.78.2

How do I have to change the sed command? Instead of creating the index1.html file, I also tried unsuccessfully to use pipe and grep, but failed to get that working properly. Alternative approaches would also be appreciated, but I would like to know what I am doing wrong with the sed commands. I have tried many different variations, but just can't seem to get just the IP address.

Thank you,

mgd

Welcome!

It looks like you're new here. Sign in or register to get started.
Sign In

Comments

  • I am not sure if SED is the string manipulator to use for this kind of outputs.

    I used cut and Below command could work for you..

    wget -q checkip.dyndns.org -O index.html && cat index.html | cut -d '>' -f 7 | cut -d '<' -f 1

    Cheers,
    blue_raptor
  • or with awk it could look like this :)
    1. wget -q checkip.dyndns.org -O index2.html && awk '{print $6}' index2.html | awk -F'<' '{print $1}'
  • Posts: 3
    Hi, Karma

    The "cut" and "awk" commands used in your examples produced slightly different results, but each example was most helpful in illustrating the basics of these two commands. I now have two command options for filtering output/text.

    Cut produces: Current IP Address: 208.106.8.22

    AWK produces: 208.106.8.22

    Thank you kindly,
  • below is for getting only IP using CUT

    wget -q checkip.dyndns.org -O index.html && cat index.html|cut -d ' ' -f 6 | cut -d '<' -f 1
  • Posts: 157
    You could also skip the intermediate file by using curl instead of wget, which is a command whose main use is to pipe a web page as a text stream to some other command. Some systems come without curl preinstalled, but it's quite common (and useful) in scripts, so in that case I recommend installing it.
    1. curl -s checkip.dyndns.org | sed 's/.*<body>Current IP Address: //;s/<\\/body>.*//'
    Note the semicolon used in the argument to sed; it's used to separate different expressions when you want to do multiple substitutions without calling sed multiple times.

Welcome!

It looks like you're new here. Sign in or register to get started.
Sign In

Welcome!

It looks like you're new here. Sign in or register to get started.
Sign In

Categories

Upcoming Training