返回首页
当前位置: 主页 > 网络技术 >

自己编成实现Linux下自动登录无锡广电网

时间:2010-05-27 17:02来源: 作者: 点击:
自己编成实现Linux下自动登录无锡广电网首先来在vi下编辑C文件wxcatv.c:#include #include #include #include #include #include #include #include #define WEBSERVPORT 80 #define MAXDATASIZE.
  自己编成实现Linux下自动登录无锡广电网
首先来在vi下编辑C文件wxcatv.c:
#include
#include
#include
#include
#include
#include
#include
#include

#define WEBSERVPORT 80
#define MAXDATASIZE 4096


int testlink(void)
{
int sockfd;
struct hostent *host;
struct sockaddr_in serv_addr;
int ret;
int iLength;
char buf[MAXDATASIZE];

char *Message =
"GET / HTTP/1.1rn
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*rn
Accept-Language: zh-cnrn
Accept-Encoding: gzip, deflatern
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)rn
Host: www.thmz.comrn
Connection: Keep-Alivernrn";

char *received =
"HTTP/1.1 302 Moved Temporarilyrn
Cache-Control: no-cachern
Location: http://10.130.2.102rn
Content-Type: text/htmlrn
Content-Length: 0rn
Connection: closernrnrn";

if((host = gethostbyname("www.thmz.com")) == NULL)
{
perror("testLink gethostbyname error");
exit(1);
}

if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
{
perror("testLink socket error");
exit(1);
}

serv_addr.sin_family = AF_INET;
serv_addr.sin_port = htons(WEBSERVPORT);
serv_addr.sin_addr = *((struct in_addr *)host->h_addr);
bzero(&(serv_addr.sin_zero), 8);
if (connect(sockfd, (struct sockaddr *)&serv_addr, sizeof(struct sockaddr)) == -1)
{
perror("testLink connect error");
exit(1);
}

send(sockfd, Message, strlen(Message), 0);
iLength = recv(sockfd, buf, sizeof(buf), 0);
buf[iLength] = ';

close(sockfd);
ret = strncmp(buf, received, iLength);
return(ret);
}

int logonyxt(void)
{
int sockfd;
struct hostent *host;
struct sockaddr_in serv_addr;
int ret;
int iLength;
char buf[MAXDATASIZE];

char *Message =
"POST / HTTP/1.1rn
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*rn
Referer: http://10.130.2.102/rn
Accept-Language: zh-cnrn
Content-Type: application/x-www-form-urlencodedrn
Accept-Encoding: gzip, deflatern
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)rn
Host: 127.0.0.1rn
Content-Length: 51rn
Connection: Keep-Alivern
Cache-Control: no-cachernrn
DDDDD=a12345&upass=123456&0MKKey=%B5%C7%C2%BC+Login";

if((host = gethostbyname("10.130.2.102")) == NULL)
{
perror("logonyxt gethostbyname error");
exit(1);
}

if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
{
perror("logonyxt socket error");
exit(1);
}

serv_addr.sin_family = AF_INET;
serv_addr.sin_port = htons(WEBSERVPORT);
serv_addr.sin_addr = *((struct in_addr *)host->h_addr);
bzero(&(serv_addr.sin_zero), 8);
if (connect(sockfd, (struct sockaddr *)&serv_addr, sizeof(struct sockaddr)) == -1)
{
perror("logonyxt connect error");
exit(1);
}

send(sockfd, Message, strlen(Message), 0);
iLength = recv(sockfd, buf, sizeof(buf), 0);
buf[iLength] = ';

close(sockfd);
return(0);

}

int main(void)
{
if (testlink() == 0)
{
logonyxt();
}
return(0);
}



现在编译c文件
#cc wxcatv.c -o wxcatv

将wxcatv 拷贝到/usr/bin/目录下

接下来在vi下编辑SH文件catv:

#! /bin/bash

#
#

case "$1" in
*start)
exec /usr/bin/wxcatv
exit 0
;;
*)
echo $"Usage: $0 {start}"
exit 1
;;
esac

保存到/etc/init.d目录下
分别连接到rc3 rc5目录下创建自启动。

现在可以了自动连接了。

在红帽AS4下通过。
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
推荐内容