COMMENTS

感谢朋友们

最近因为事情太多,很少有时间来blog看看,更没有去朋友的blog光顾,承蒙大家的照顾,在此向大家表示歉意了。

有空一定回访!感谢大家!

另外编写程序方面,最近也遇到了许多新问题,我会及时整理供大家参考

搞IT VS 养山鸡

今天下班坐在车上,同事向我谈起了他的宏伟理想—回家养山鸡!
他说,他家背靠大山,山头就是自己的。成本就低了一成。想想有理,于是他跟我讲起了他的小算盘。
现在我们做AP(无线接入点,一种网络设备),费脑子不说,能卖多少钱?我还真不知道。他说,政府采购网上公布的是2000+,实际卖给电信也就600多(这个差价就不讨论了),更何况卖多少钱与我们有什么关系,一毛钱也不会落到我们手里。 养山鸡就不一样了,他说的山鸡估计就是野鸡吧。一只最少卖个30块吧,你一月吃两只,一年就是近30只(我好像吃不了那么多),这就900块呢,超过一只AP了吧,更何况你买个AP管用多少年呢!
听他说,真在理。白领算个啥啊(我们现在能算白领么),咱上了四年大学,武装了头脑,再回家当农民,那就是科技型农民了。挣的不比这个多?怎么看人家三轮车上卖早点的也和我们差不多,就是我们看起来人模狗样了点。虚伪!
他还说,山头多,在这个山头养一年,换个山头养,这个山头可以种药材了,地多肥啊!要做科技型农民,搞生态养殖,搞循环利用。甚至,他还在考虑怎么把野猪养殖和山鸡养殖都生态起来。
真值得好好思索一番。

ioctl对madwifi驱动网卡的SSID设置操作

下面一则小程序实现了对无线网卡的SSID设置操作,网卡使用madwifi-hal-0.10.5.6驱动。其中wireless_copy.h头文件在madwifi/tools下,需要将这个头文件包含在这则小程序中。更多的其他诸如channel的设置,请参考http://gattaca.ru/~nikki/wrt54g/wpa/x/wpa_supplicant/driver_wext.c

以下为程序源码,与大家共享
get_set_ssid.c

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
#include <stdio .h>
#include <stdlib .h>
#include <sys /socket.h>
#include <string .h>
#include "wireless_copy.h"
 
int get_essid(int sock, struct iwreq* wrq,char* ssid);
int set_essid(int sock, struct iwreq* wrq,char* value);
 
int main(){
 
	struct iwreq wrq;
	int i,sock;
	char gInterfaceName[16];
	char *ssid=(char *)malloc(sizeof(char)*(32+1));
	char *set_ssid="testssid";
 
	memset(ssid,0,sizeof(ssid));
	memset(gInterfaceName, 0, sizeof(gInterfaceName));
	strcat(gInterfaceName,"ath0");
 
	sock = socket(AF_INET, SOCK_DGRAM, 0);
		if (sock < 0) 
		{
			printf("Error Creating Socket for ioctl\n"); 
			return 0;
		}
	memset(&wrq, 0, sizeof(wrq));
	strncpy(wrq.ifr_name, gInterfaceName, IFNAMSIZ);
//get ssid
	get_essid(sock, &wrq,ssid);
 
	printf("old ssid:%s\n",wrq.u.essid.pointer);
	free(ssid);
//reset struct
	memset(&wrq, 0, sizeof(wrq));
	strncpy(wrq.ifr_name, gInterfaceName, IFNAMSIZ);
//set ssid	
	set_essid(sock, &wrq,set_ssid);
 
	printf("new ssid:%s\n",wrq.u.essid.pointer);
}
 
 
int get_essid(int sock, struct iwreq* wrq,char* ssid)
{
 
	wrq->u.essid.length=32;
	wrq->u.essid.pointer=(caddr_t) ssid;
      	if(ioctl(sock, SIOCGIWESSID, wrq) < 0)
	{
		perror("Ioctl error");
		free(ssid);
		return(0);
	}	
 
	printf("\nssid from function get_ssid: %s\n", wrq->u.essid.pointer);
 
	return 1;
}
 
int set_essid(int sock, struct iwreq* wrq,char* value)
{
	wrq->u.essid.pointer=value;
	wrq->u.essid.length=strlen(value);
	wrq->u.essid.flags=1;
      	if(ioctl(sock, SIOCSIWESSID, wrq) < 0)
	{
		perror("Ioctl error");
		return(0);
	}	
 
	printf("\nessid from function set_essid: %s\n", wrq->u.essid.pointer);
 
	return 1;
}
</string></sys></stdlib></stdio>

继续阅读

选个主题真难

最近想换个主题玩玩,选了好几天了也没看到个中意的,可能是WP的主题实在是太多了。好看的倒是很多,往往是某些小地方不满意,就是自己懒的改。
惰性啊,害死人。还是老老实实的改一改吧,看上一款叫flexibility2的主题,感觉很不错,功能比较强大,可自己定义的选项相当多,包括主题颜色,背景图案,甚至是页面宽度,RSS的图标都提供了好多供选择。
自己动动手吧,想饭来张口实在是太懒了。