EdmondFrank's 时光足迹

この先は暗い夜道だけかもしれない それでも信じて進むんだ。星がその道を少しでも照らしてくれるのを。
或许前路永夜,即便如此我也要前进,因为星光即使微弱也会我为照亮前途。
——《四月は君の嘘》

百度前端技术学院-任务2

百度前端技术学院-任务二

任务二:零基础HTML及CSS编码(一)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Language" content="zh-ch"/>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <title>任务二</title>
    <style>
        body{
            margin:20;
            padding:0;
            background-color: #cccccc;
        }
        .top,.footer{
            background-color: #333333;
            height:50px;
        }
        .top h1{
            color: blue;
            display: inline-block;
            margin: 0;
        }
        .top ul{
            float: right;
        }
        .top ul li{
            display: inline-block;
            padding-left: 10px;
            color: #fff;
        }
        .top ul li a{
            color: white;
        }
        .wrap{
            margin: 20px 20px 0 20px;
            background-color: #fff;
            box-shadow: 5px 5px 5px #000;
            padding:10px;
        }
     .wrap2{
            margin: 20px 20px 0 20px;
            background-color: #fff;
            box-shadow: 5px 5px 5px #000;
            padding:10px;
        }
        .wrap h3{
            color: #646464;
        }
        .wrap .author{
            color: #707070;
            text-indent: 0;
        }
        .wrap>p{
            text-indent: 2em;
        }
     .wrap ul li{
         list-style-type:none;
     }
     .wrap2 ul li{
         border: 1px solid #000;
         padding: 10px;
         text-align: center;
         margin: 10px;
         max-width: 10%;
         max-height: 10%;
         width:auto;
         height:auto;
         list-style-type:none;
     }
        .wrap li img{
            max-width: 100%;
            max-height: 100%;
            width:auto;
            height:auto;
        }
      .wrap2 li img{
            max-width: 100%;
            max-height: 100%;
            width:auto;
            height:auto;
        }
        table{
            width:100%;
            padding:0;
            margin:0;
            background-color: #6c6c6c;
        }
        table th{
            color: #fff;
            background-color: #383e41;
            text-align: left;
        }
        table tr:last-child th{
            background-color: #c0c0c0;
            color:black
        }
        table td {
            background-color: white;
        }
        .myform table{
            width:40%;
            background-color: white;
            margin-left: 200px;
        }
     .myform h2{
    height:40px;
    line-height:40px;
    padding-left:10px;
    border-left:3px solid #ccc;
}
        .myform table tr{
            height:30px;
        }
     .notice{
            color:#8e8e8e;
        }
        .myform table tr td:first-child{
            text-align: right;
            margin-right: 5px;
        }
        .myform table tr:last-child td:first-child{
            vertical-align: text-top;
        }
        .myform input[type="button"]{
            width:100%;
            height:40px;
            background-color: #3355dd;
            color: white;
            border:none;
            border-radius: 10px;
        }
        .footer p{
            text-align: center;
            color: white;
            line-height: 45px;
        }
    </style>
</head>
<body>
<div class="top">
    <h1>EdmondFrank</h1>
    <ul>
        <li><a href="">导航链接一</a></li>
        <li><a href="">导航链接二</a></li>
        <li><a href="">导航链接三</a></li>
        <li><a href="">导航链接四</a></li>
    </ul>
</div>
<div class="wrap">
    <h2>文章一级标题</h2>
    <h3>文件二级标题</h3>
    <p class="author">文章作者 文章发布时间</p>
<p>这是一个很长很长的段落,这是一个很长很长的段落,
                  这是一个很长很长的段落,这是一个很长很长的段落,
                  这是一个很长很长的段落,这是一个很长很长的段落,
                  这是一个很长很长的段落,<br/>换行了<br/>这是一个很长很长的段落,
                  这是一个很长很长的段落,这是一个很长很长的段落,
                  这是一个很长很长的段落,这是一个很长很长的段落,
                  这是一个很长很长的段落,换行了<br/>这是一个很长很长的段落,
                  这是一个很长很长的段落,<a href = "http://ife.baidu.com">这里有个链接链接到http://ife.baidu.com</a>
                  这是一个很长很长的段落,<b>这里有个粗体字</b>这是一个很长很长的段落,
                  这是一个很长很长的段落,这是一个很长很长的段落。</p>

                <img src="warp.png">

                <p>这是一个很长很长的段落,这是一个很长很长的段落,
                  这是一个很长很长的段落,这是一个很长很长的段落,
                  这是一个很长很长的段落,这是一个很长很长的段落,
                  这是一个很长很长的段落,<br/>换行了<br/>这是一个很长很长的段落,
                  这是一个很长很长的段落,这是一个很长很长的段落,
                  这是一个很长很长的段落,这是一个很长很长的段落,
                  这是一个很长很长的段落,换行了<br/>这是一个很长很长的段落,
                  这是一个很长很长的段落,<a href = "http://ife.baidu.com"target="_blank">这里有个链接新窗口链接到http://ife.baidu.com</a>
                  这是一个很长很长的段落,<b>这里有个粗体字</b>这是一个很长很长的段落,
                  这是一个很长很长的段落,这是一个很长很长的段落。</p>
</div>
<div class="wrap">
    <h2>另外一篇文章一级标题</h2>
    <h3>文章二级标题</h3>
    <p class="author">文章作者 文章发布时间</p>
    <p>这是一个很长很长的段落,这是一个很长很长的段落,
        这是一个很长很长的段落,这是一个很长很长的段落,
        这是一个很长很长的段落,这是一个很长很长的段落,
        这是一个很长很长的段落,<br/>换行了<br/>这是一个很长很长的段落,
        这是一个很长很长的段落,这是一个很长很长的段落,
        这是一个很长很长的段落,这是一个很长很长的段落,
        这是一个很长很长的段落,换行了<br/>这是一个很长很长的段落,
        这是一个很长很长的段落,<a href = "http://ife.baidu.com">这里有个链接链接到http://ife.baidu.com</a>
        这是一个很长很长的段落,<b>这里有个粗体字</b>这是一个很长很长的段落,
        这是一个很长很长的段落,这是一个很长很长的段落。</p>
    <img src="warp.png">
        <ul class="noli">
        <li>项目列表1</li>
        <li>项目列表2</li>
        <li>项目列表3</li>
    </ul>
</div>
<div class="wrap2">
    <h2>图片</h2>
    <ul style="list-style: none" class="img">
        <li><span>好看的图片</span><img src="warp.png" ></li>
        <li><span>好看的图片</span><img src="warp.png" ></li>
        <li><span>好看的图片</span><img src="warp.png" ></li>
        <li><span>好看的图片</span><img src="warp.png" ></li>
        <li><span>好看的图片</span><img src="warp.png" ></li>
        <li><span>好看的图片</span><img src="warp.png" ></li>
        <li><span>好看的图片</span><img src="warp.png" ></li>
        <li><span>好看的图片</span><img src="warp.png" ></li>
    </ul>
</div>
<div class="wrap">
    <h2>最后一篇文章一级标题</h2>
    <h3>文章二级标题</h3>
    <p class="author">文章作者 发布时间</p>
    <ol>
        <li>排名1</li>
        <li>排名2</li>
        <li>排名3</li>
    </ol>
    <p>一个表格</p>
    <table >
            <tr>
              <th>表头</th>
              <th>表头</th>
              <th>表头</th>
            </tr>
            <tr>
              <td>表内容单元格</td>
              <td>表内容单元格</td>
              <td><a href="http://edmondfrank.github.io">操作</a></td>
            </tr>
            <tr>
              <td>表内容单元格</td>
              <td>表内容单元格</td>
              <td><a href="http://edmondfrank.github.io">操作</a></td>
            </tr>
            <tr>
              <td>表内容单元格</td>
              <td>表内容单元格</td>
              <td><a href="http://edmondfrank.github.io">操作</a></td>
            </tr>
            <tr>
              <td>表内容单元格</td>
              <td>表内容单元格</td>
              <td><a href="http://edmondfrank.github.io">操作</a></td>
            </tr>
            <tr>
              <th>总计</th>
              <th colspan="2">1000</th>
            </tr>
          </table>
</div>
<div class="wrap myform">
  <h2>这里以后是一个侧栏,这是侧栏的标题</h1>
<table>
        <tr>
            <td>请输入邮箱地址</td>
            <td><input type="text" name="email" value="这是一个文本输入框" onclick="if(value==defaultValue){value='';this.style.color='#000'}" onBlur="if(!value){value=defaultValue;this.style.color='#999'}" style="color:#999"/></td>
        </tr>
        <tr>
            <td></td>
            <td class="notice">邮箱地址请按要求格式输入</td>
        </tr>
        <tr></tr>
        <tr>
            <td>请输入密码</td>
            <td><input type="text" name="password" value="这是一个文本输入框" onclick="if(value==defaultValue){value='';this.style.color='#000'}" onBlur="if(!value){value=defaultValue;this.style.color='#999'}" style="color:#999"/></td>
        </tr>
        <tr>
            <td>请重复输入密码</td>
            <td><input type="text" name="password" value="这是一个文本输入框" onclick="if(value==defaultValue){value='';this.style.color='#000'}" onBlur="if(!value){value=defaultValue;this.style.color='#999'}" style="color:#999"/></td>
        </tr>
        <tr>
            <td></td>
            <td class="notice">密码为6-16位英文数字</td>
        </tr>
        <tr></tr>
        <tr>
            <td>性别</td>
            <td><input type="radio" name="Male" value="male" checked><input type="radio" name="Female" value="female" checked="false"></td>
        </tr>
        <tr>
            <td>城市</td>
            <td>
                <select name="">
                    <option value="" aria-checked="true">北京</option>
                    <option value="" aria-checked="false">上海</option>
                </select>
            </td>
        </tr>
        <tr>
            <td>爱好</td>
            <td><input type="checkbox">运动<input type="checkbox">艺术<input type="checkbox">科学</td>
        </tr>
        <tr>
            <td>个人描述</td>
            <td><textarea name="个人描述" onclick="if(value==defaultValue){value=''}" onBlur="if(!value){value=defaultValue}" cols="30" rows="4">这是一个多行输入框,输入个人信息</textarea></td>
        </tr>
    </table>
    <input type="button" value="确认提交">
</div>
<div class="footer">
    <p>版权所有@</p>
</div>
</body>
</html>

百度前端技术学院-任务1

百度前端技术学院-任务一

任务一:零基础HTML编码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Language" content="zh-ch"/>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>任务一</title>
    </meta>
  </head>
  <body>
        <h1>网站一级标题</h1>
        <ul>
            <li><a href="http://edmondfrank.github.io">链接一</a></li>
              <li><a href="http://edmondfrank.github.io">链接二</a></li>
                <li><a href="http://edmondfrank.github.io">链接三</a></li>
                  <li><a href="http://edmondfrank.github.io">链接四</a></li>
                </ul>
                <h2>文章一级标题</h2>
                <h2>文章二级标题</h2>
                <p>文章作者 发布时间</p>
                 <p>这是一个很长很长的段落,这是一个很长很长的段落,
                  这是一个很长很长的段落,这是一个很长很长的段落,
                  这是一个很长很长的段落,这是一个很长很长的段落,
                  这是一个很长很长的段落,<br/>换行了<br/>这是一个很长很长的段落,
                  这是一个很长很长的段落,这是一个很长很长的段落,
                  这是一个很长很长的段落,这是一个很长很长的段落,
                  这是一个很长很长的段落,换行了<br/>这是一个很长很长的段落,
                  这是一个很长很长的段落,<a href = "http://ife.baidu.com">这里有个链接链接到http://ife.baidu.com</a>
                  这是一个很长很长的段落,<b>这里有个粗体字</b>这是一个很长很长的段落,
                  这是一个很长很长的段落,这是一个很长很长的段落。</p>

                <img src="fish.png">

                <p>这是一个很长很长的段落,这是一个很长很长的段落,
                  这是一个很长很长的段落,这是一个很长很长的段落,
                  这是一个很长很长的段落,这是一个很长很长的段落,
                  这是一个很长很长的段落,<br/>换行了<br/>这是一个很长很长的段落,
                  这是一个很长很长的段落,这是一个很长很长的段落,
                  这是一个很长很长的段落,这是一个很长很长的段落,
                  这是一个很长很长的段落,换行了<br/>这是一个很长很长的段落,
                  这是一个很长很长的段落,<a href = "http://ife.baidu.com"target="_blank">这里有个链接新窗口链接到http://ife.baidu.com</a>
                  这是一个很长很长的段落,<b>这里有个粗体字</b>这是一个很长很长的段落,
                  这是一个很长很长的段落,这是一个很长很长的段落。</p>
                <h2>另外一篇文章一级标题</h2>
                <h2>文章二级标题</h2>
                <p>文章作者 文章发布时间</p>

                <p>这是一个很长很长的段落,这是一个很长很长的段落,
                  这是一个很长很长的段落,这是一个很长很长的段落,
                  这是一个很长很长的段落,这是一个很长很长的段落,
                  这是一个很长很长的段落,<br/>换行了<br/>这是一个很长很长的段落,
                  这是一个很长很长的段落,这是一个很长很长的段落,
                  这是一个很长很长的段落,这是一个很长很长的段落,
                  这是一个很长很长的段落,换行了<br/>这是一个很长很长的段落,
                  这是一个很长很长的段落,<a href = "http://ife.baidu.com">这里有个链接链接到http://ife.baidu.com</a>
                  这是一个很长很长的段落,<strong><b>这里有个粗体字</b></strong>这是一个很长很长的段落,
                  这是一个很长很长的段落,这是一个很长很长的段落。</p>
                <img src="fish.png">

                <ul>
                    <li>项目列表1</li>
                    <li>项目列表2</li>
                    <li>项目列表3</li>
                  </ul>
                      <h2>图片</h2>
                      <ul>
                        <p> 好看的图片</p>
                        <img src="fish.png">
                        <p> 好看的图片</p>
                        <img src="fish.png">
                        <p> 好看的图片</p>
                        <img src="fish.png">
                        <p> 好看的图片</p>
                        <img src="fish.png">
                        <p> 好看的图片</p>
                        <img src="fish.png">
                        <p> 好看的图片</p>
                        <img src="fish.png">
                        <p> 好看的图片</p>
                        <img src="fish.png">
                        <p> 好看的图片</p>
                        <img src="fish.png">
                        <p> 好看的图片</p>
                        <img src="fish.png">
                        <p> 好看的图片</p>
                        <img src="fish.png">
                        <p> 好看的图片</p>
                        <img src="fish.png">
                      </ul>

                      <h2>最后一篇文章一级标题</h2>
                      <h2>文章二级标题</h2>
                      <p>文章作者 文章发布时间</p>
                      <ol>
                        <li>排名1</li>
                        <li>排名2</li>
                        <li>排名3</li>
                      </ol>
        <p>下面是一个表格,给表格加了一个border="1",好让你看出来是一个表格</p>
        <div>
          <table border="1" >
            <tr>
              <td>表头</td>
              <td>表头</td>
              <td>表头</td>
            </tr>
            <tr>
              <td>表内容单元格</td>
              <td>表内容单元格</td>
              <td><a href="http://edmondfrank.github.io">操作</a></td>
            </tr>
            <tr>
              <td>表内容单元格</td>
              <td>表内容单元格</td>
              <td><a href="http://edmondfrank.github.io">操作</a></td>
            </tr>
            <tr>
              <td>表内容单元格</td>
              <td>表内容单元格</td>
              <td><a href="http://edmondfrank.github.io">操作</a></td>
            </tr>
            <tr>
              <td>表内容单元格</td>
              <td>表内容单元格</td>
              <td><a href="http://edmondfrank.github.io">操作</a></td>
            </tr>
            <tr>
              <td>总计</td>
              <td colspan="2">1000</td>
            </tr>
          </table>
        </div>
        <h2>这以后是一个侧栏,这是侧栏标题</h2>
        <h2>侧栏注册窗口标题</h2>
        <div>
          <form>
            请输入邮箱地址:
            <input type="text" name="email" value="这是一个文本输入框" onclick="if(value==defaultValue){value='';this.style.color='#000'}" onBlur="if(!value){value=defaultValue;this.style.color='#999'}" style="color:#999"/><br/>
            <br>
            <div>邮箱地址请按要求格式输入</div><br>
            请输入密码:
           <!-- <input type="text" name="password"> -->
             <input type="text" name="password" value="这是一个文本输入框" onclick="if(value==defaultValue){value='';this.style.color='#000'}" onBlur="if(!value){value=defaultValue;this.style.color='#999'}" style="color:#999"/>
            请再次输入密码:
           <!-- <input type="text" name="password"><br> -->
             <input type="text" name="password" value="这是一个文本输入框" onclick="if(value==defaultValue){value='';this.style.color='#000'}" onBlur="if(!value){value=defaultValue;this.style.color='#999'}" style="color:#999"/><br/>
            <br/>
            <div>密码请为6-16位英文数字</div>
            <br/>
            <div>
              性别:
              <input type="radio" name="Male" value="male" checked>              <input type="radio" name="Female" value="female">
              城市:
              <select>
                <option value="北京">北京</option>
                <option value="广东">广东</option>
              </select>

              爱好:
              <input type="checkbox" name="运动" value="运动">运动
              <input type="checkbox" name="艺术" value="艺术">艺术
              <input type="checkbox" name="科学" value="科学">科学

              个人描述:<textarea name="个人描述" onclick="if(value==defaultValue){value=''}" onBlur="if(!value){value=defaultValue}">这是一个文本框,输入个人信息 </textarea>
              <input type="submit" value="确认提交">
          </form>
       </div>
          <footer>
  <br/><div>版权所有@ </div>
</footer>
  </body>
</html>

Emacs+w3m:我的浏览我做主

如何使用emacs + w3m 上网浏览

关于w3m的简介:

 w3m与Links一样,是一种基本文本的浏览器.w3m在表格、框架、SSL连接以及颜色方面都具有很强的支持性.甚至在支持图形界面的终端下还可以显示图片.同时w3m具备了浏览速度快、快捷键操作强、隐蔽性高的三大特点.使它成为了在emacs下工作的人的不二浏览器之选.

如何在emacs下使用w3m:

为了实现在emacs中使用w3m浏览网页,那我们就要通过Emacs-w3m这个emacs的扩展来实现.再次博主首先要说明的一点是Emacs-w3m只是Emacs调用w3m的接口,所以安装w3m浏览器的这个步骤必不可少.如果各位想要在浏览器中能够显示图片,那么则还需要w3m-img.

关于w3m的安装,Ubuntu用户可以直接通过包管理器或是在软件中心中添加软件源即可.其他的Linux用户可以自行在网络上下载w3m的源代码并进行编译安装.

安装完w3m后,接下来便是emacs-w3m这个emacs的扩展的安装与配置了.在这个步骤中需要注意的问题是:如果发现emacs提示不能加载w3m时,可以使用网络上发布的cvs版本,或是使用linux自带的cvs版本控制工具,将最新的emacs-w3m下载至本地再进行配置

最后当一切工作都准备就绪之后就可以修改~/.emacs这个配置文件,并加入以下内容:


1
2
3
4
;;w3m的相关设置
(add-to-list'load-path "/usr/local/src/emacs_plugins/emacs-w3m-1.4.4/share/emacs/site-lisp/w3m")
(require 'w3m-load)
(setq w3m-home-page "https://www.google.com.hk") 

然后重启emacs,按下M-x输入w3m,开始浏览网页即可.

Ruby实现的天翼校园网客户端

Ruby实现的天翼校园网客户端

众所周知,由于Linux客户量在国内十分少,因此十分多的国内软件商都很少有提供Linux下的客户端. 即使是天翼校园网也不例外. 这样便苦了我们这一批在校学习的大学学子们了.

为了尝试去解决这样的困境,我通过模拟天翼校园网Windows客户端的post登录协议,成功登录了校园网.

在此,将核心POST代码放出供大家参考(Ruby实现),完整代码可以前往我的github浏览和下载.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#!/usr/bin/ruby
#coding:utf-8
require 'json'
require 'mechanize'
require 'digest/md5'
def getTimestamp()
  return Time.now.to_i.to_s+'520'
end
def getmac()
  return `(ifconfig $i|grep "eth"|awk '{print$5}'|sed 's/:/-/g'|tr '[a-z]' '[A-Z]')`.strip
end
def vaildmac?(mac)
   return mac=~/^(([\d|a-fA-F]{2}-){5}[\d|a-fA-F]{2})$/ ? true : false
end
def vaildip?(ip)
  return ip =~/((?:(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d))))/ ? true : false
end
#mac=1a-2b-3c-4d-5e-33; if echo $mac | grep -qiP "^([\dA-F]{2}-){5}[\dA-F]{2}$"; then echo $mac yes; else echo $mac no; fi
def getlocalip()
  ip=`(ifconfig $i | grep "inet " | awk -F: '{print $2}' | awk '{print $1}')`
  return ip.gsub("127.0.0.1","").strip
end
def getmd5(str)
  return  Digest::MD5.hexdigest(str+'Eshore!@#').upcase
end


def active(username,clientip,nasip,mac)
  timestamp = getTimestamp
  authenticator= getmd5(clientip+nasip+mac+timestamp)
  url="http://enet.10000.gd.cn:8001/hbservice/client/active?username=#{username}&clientip=#{clientip}&nasip=#{nasip}&mac=#{mac}&timestamp=#{timestamp}&authenticator=#{authenticator}"

  agent = Mechanize.new
  page = agent.get(url)
  puts page.body
end

def login(username,password,clientip,nasip,mac,code,iswifi)
  url = "http://enet.10000.gd.cn:10001/client/login"
  timestamp = getTimestamp
  authenticator=getmd5(clientip+nasip+mac+timestamp+code)
  postdata={}
  postdata['username']=username
  postdata['password']=password
  postdata['clientip']=clientip
  postdata['nasip']=nasip
  postdata['mac']=mac
  postdata['timestamp']=timestamp
  postdata['authenticator']=authenticator
  postdata['iswifi']=iswifi
  data=postdata.to_json

  agent = Mechanize.new
  resp = agent.post(url,data)
  status = JSON.parse(resp.body)['resinfo']
  return  "登陆信息回馈:"+status
end


def challenge(username,clientip,nasip,mac)
  url = 'http://enet.10000.gd.cn:10001/client/challenge'

  timestamp = getTimestamp
  authenticator= getmd5(clientip+nasip+mac+timestamp)
  postdata={}
  postdata['username']=username
  postdata['clientip']=clientip
  postdata['nasip']=nasip
  postdata['mac']=mac
  postdata['timestamp']=timestamp
  postdata['authenticator']=authenticator
  data=postdata.to_json
  headers = {'X-Forwarded_For' => clientip}

  agent = Mechanize.new
  resp = agent.post(url,data,headers)
  result = JSON.parse(resp.body)
  puts result
  return result['challenge']
end