# CheckMyIP ![CheckMyIP][logo] A Telnet and SSH based IP Lookup Service ----------------------------------------- ### VERSION ### The version of CheckMyIP documented here is: **v1.0.0** ----------------------------------------- ### TABLE OF CONTENTS ### 1. [What is CheckMyIP](#what-is-checkmyip) 2. [How to Use](#how-to-use) 3. [Install Process](#install-process) 4. [Using the API](#using-the-api) 5. [Contributing](#contributing) ----------------------------------------- ### WHAT IS CHECKMYIP ### Everybody has used a service like [WhatIsMyIP.com](whatismyip) before. If you are an IT engineer or even an amateur technology enthusiast, then you have probably had a reason to check to see your public IP address. This service works great when a browser is available, but at times it is not. We often find ourselves logged into a remote Linux machine or a network switch/router which has a command line and terminal clients (Telnet and SSH), but no browser. The CheckMyIP app and the **TelnetMyIP.com** and **SSHMyIP.com** public services were created with this in mind. ----------------------------------------- ### HOW TO USE ### Using the public **TelnetMyIP.com** and **SSHMyIP.com** services is pretty easy: simply connect to them with a terminal client. You can use a telnet client with TCP port 23 (`telnet telnetmyip.com`), or a SSH client with TCP port 22 (`ssh telnetmyip.com`). The SSH connection requires no authentication, but your SSH client may require you to enter a username, you can use anything you want as it gets ignored anyways(`ssh -limrootbitch telnetmyip.com`). To enable the use of this service as a simple API, the response to queries is formatted as a JSON document. See the [Using the API](#using-the-api) section. ----------------------------------------- ### INSTALL PROCESS ### Change Linux SSH Port to TCP222 and reboot ``` sudo sed -i --follow-symlinks 's/#Port 22/Port 222/g' /etc/ssh/sshd_config shutdown -r now ``` Install Dependencies ``` yum install gcc -y yum install libffi-devel -y yum install openssl-devel -y pip install python-gssapi ``` Install Binary ``` cp checkmyip.py /bin/checkmyip chmod 777 /bin/checkmyip mkdir -p /etc/checkmyip/ ``` Create Service (`vi /etc/init.d/checkmyip`) ``` #!/bin/bash # checkmyip daemon # chkconfig: 345 20 80 # description: CheckMyIP Daemon # processname: checkmyip DAEMON_PATH="/bin/" DAEMON=checkmyip #DAEMONOPTS="run" NAME=CheckMyIP DESC="CheckMyIP Daemon" PIDFILE=/var/run/$NAME.pid SCRIPTNAME=/etc/init.d/$NAME case "$1" in start) printf "%-50s" "Starting $NAME..." cd $DAEMON_PATH PID=`$DAEMON $DAEMONOPTS > /dev/null 2>&1 & echo $!` #echo "Saving PID" $PID " to " $PIDFILE if [ -z $PID ]; then printf "%s " "Fail" else echo $PID > $PIDFILE printf "%s " "Ok" fi ;; status) if [ -f $PIDFILE ]; then PID=`cat $PIDFILE` if [ -z "`ps axf | grep ${PID} | grep -v grep`" ]; then printf "%s " "Process dead but pidfile exists" else echo "$DAEMON (pid $PID) is running..." fi else printf "%s " "$DAEMON is stopped" fi ;; stop) printf "%-50s" "Stopping $NAME" PID=`cat $PIDFILE` cd $DAEMON_PATH if [ -f $PIDFILE ]; then kill -HUP $PID printf "%s " "Ok" rm -f $PIDFILE else printf "%s " "pidfile not found" fi ;; restart) $0 stop $0 start ;; *) echo "Usage: $0 {status|start|stop|restart}" exit 1 esac ``` Finish and Start Up Service ``` chmod 777 /etc/init.d/checkmyip chkconfig checkmyip on service checkmyip start service checkmyip status ``` ----------------------------------------- ### USING THE API ### The CheckMyIP code contains the `CheckMyIP_Client` class which is an API client example which can be used to query a CheckMyIP server (like telnetmyip.com). Below is an example of how you can use it. ``` from checkmyip import CheckMyIP_Client client = CheckMyIP_Client() ipdict = client.get() print("My IP is %s" % ipdict["ip"]) print("I used port number %s" % ipdict["port"]) ``` ----------------------------------------- ### CONTRIBUTING ### If you would like to help out by contributing code or reporting issues, please do! Visit the GitHub page (https://github.com/packetsar/checkmyip) and either report an issue or fork the project, commit some changes, and submit a pull request. [logo]: http://www.packetsar.com/wp-content/uploads/checkmyip_icon-100.gif [whatismyip]: https://www.whatismyip.com/