C CODE

/*
FILENAME : my_local_ip.c
*/
#include
#include
#include
#include
#include
#include
#include
#include
int main(int argc, char **argv) {
int s;
struct sockaddr_in sin;
int slen;
int port;
if( argc<3 ) {
printf("Usage: %s \n", argv[0]);
printf("\n\tsample %s 203.66.88.89 80\n",argv[0]);
return -1;
}
port = atoi(argv[2]);
s = socket(PF_INET, SOCK_STREAM, 0);
memset(&sin, 0, sizeof(sin));
sin.sin_family = PF_INET;
sin.sin_port = htons(port);
sin.sin_addr.s_addr = inet_addr(argv[1]);
if(connect(s, (struct sockaddr *)&sin, sizeof(sin)) < 0) {
printf("127.0.0.1");
return -1;
}
memset(&sin, 0, sizeof(sin));
slen = sizeof(sin);
if(getsockname(s, (struct sockaddr *)&sin, &slen) < 0) {
printf("127.0.0.1");
close(s);
return -1;
}
printf("%s", inet_ntoa(sin.sin_addr));
close(s);
return 0;
}
可以依自己的需求來改這SHELL:
#!/bin/sh
ADDR=`my_local_ip 168.95.1.1 53`
FILENAME=${ADDR=}".txt"
echo $FILENAME