Wireshark

[不指定 2008/02/28 19:58 | by ipaddr ]

About Wireshark

Wireshark is the world's foremost network protocol analyzer, and is the de facto (and often de jure) standard across many industries and educational institutions.

Wireshark development thrives thanks to the contributions of networking experts across the globe. It is the continuation of a project that started in 1998.

Features

Wireshark has a rich feature set which includes the following:

  • Deep inspection of hundreds of protocols, with more being added all the time
  • Live capture and offline analysis
  • Standard three-pane packet browser
  • Multi-platform: Runs on Windows, Linux, OS X, Solaris, FreeBSD, NetBSD, and many others
  • Captured network data can be browsed via a GUI, or via the TTY-mode TShark utility
  • The most powerful display filters in the industry
  • Rich VoIP analysis
  • Read/write many different capture file formats: tcpdump (libpcap), Catapult DCT2000, Cisco Secure IDS iplog, Microsoft Network Monitor, Network General Sniffer® (compressed and uncompressed), Sniffer® Pro, and NetXray®, Network Instruments Observer, Novell LANalyzer, RADCOM WAN/LAN Analyzer, Shomiti/Finisar Surveyor, Tektronix K12xx, Visual Networks Visual UpTime, WildPackets EtherPeek/TokenPeek/AiroPeek, and many others
  • Capture files compressed with gzip can be decompressed on the fly
  • Live data can be read from Ethernet, IEEE 802.11, PPP/HDLC, ATM, Bluetooth, USB, Token Ring, Frame Relay, FDDI, and others (depending on your platfrom)
  • Decryption support for many protocols, including IPsec, ISAKMP, Kerberos, SNMPv3, SSL/TLS, WEP, and WPA/WPA2
  • Coloring rules can be applied to the packet list for quick, intuitive analysis
  • Output can be exported to XML, PostScript®, CSV, or plain text

khtml2png2

[不指定 2008/02/26 10:42 | by ipaddr ]

khtml2png2
==========

khtml2png is a command line program to create screenshots of webpages. It uses
libkhtml (the library that is used in the KDE webbrowser Konqueror) and
"convert" from the ImageMagick graphic conversion toolkit.


Requirements
============
For running and compiling you need some libraries and tools. You can find the
Debian package names in braces.

 * g++
 * KDE 3.x
 * kdelibs for KDE 3.x (kdelibs4-dev)
 * zlib (zlib1g-dev)
 * cmake


Introducing informations
========================
Extract the archive with: tar xfvz <file name>

Afterwards check the requirements and install missing development packages.


Compiling and installation
==========================
This is done with the usual three steps

 1. ./configure
 2. make
 3. make install


Static file
===========
If you have chosen the precompiled statically linked file you don't need to
install KDE or KDE librariers. Just extract the file with

 bunzip2 <file name>

and place it in a directory used for binaries (e.g. /usr/bin or /usr/local/bin).
If you like you can rename the executable.
!!! Make sure the khtml2png2 file is executable (e.g. chmod +x <file name>). !!!


Running
=======

khtml2png2 [options] url outfile

Options:
  -w, --width <width>       Width of canvas on which to render html [800]
  -h, --height <height>     Height of canvas on which to render html [1000]
  -t, --time <time>         Maximum time in seconds to spend loading page [30]
  --auto <id>               Use this option if you to autodetect the bottom/right border []
  --disable-js              Enable/Disable javascript (enabled by default)
  --disable-java            Enable/Disable java (enabled by default)
  --disable-plugins         Enable/Disable KHTML plugins (like Flash player, enabled by default)
  --disable-redirect        Enable/Disable auto-redirect by header <meta > (enabled by default)
  --disable-popupkiller     Enable/Disable popup auto-kill (enabled by default)

Example:

 khtml2png2 --width 800 --height 1000 http://www.kde.org/ kde-org.png

or

 khtml2png --auto ID_border http://www.kde.org/ kde-org.png

DRBD (网络磁盘镜像)

[不指定 2008/01/19 17:10 | by ipaddr ]
一、什么是DRBD?
    DRBD 是由内核模块和相关脚本而构成,用以构建高可用性的集群。其实现方式是通过网络来镜像整个设备。您可以把它看作是一种网络RAID。
二、drbd 的应用范围是什么?除此之外,创建高可用性集群还需要什么?
        Drbd 负责接收数据,把数据写到本地磁盘,然后发送给另一个主机。另一个主机再将数据存到自己的磁盘中。其他所需的组件有集群成员服    务,如TurboHA 或 心跳连接,以及一些能在块设备上运行的应用程序。
    例如:
     --裸I/O
     --文件系统及fsck
     --具有恢复能力的数据库。
三、它是如何工作的?

Linux下推荐应用程序列表

[不指定 2008/01/19 17:05 | by ipaddr ]
* 特殊软件:
 windows下访问ext2fs, ext3fs: http://www.ext2fs-anywhere.com/
                              http://fs-driver.org/
 修复分区表:Disk Genius(原名DiskMan), diskfix

* 批量更改文件名:rename (可能位于rename这个软件包)
* 监视文件或目录变更:fam (http://oss.sgi.com/projects/fam/)
                     gamin (http://www.gnome.org/~veillard/gamin/index.html)

* 媒体播放:  
1)divx影片:mplayer
2)rm影片:realplayer10 for linux, mplayer
3)mp3: amarok, Audacious, beep media player, Rhythmbox,MPD
4)ape: xmms+monkey's audio plugin(http://supermmx.org/linux/mac/)
       http://www.sourceforge.net/projects/mac-port/
5)其他格式(wma, wmv, mkv, quicktime): mplayer

* 各种格式的文档和文件                                                        
1)打开微软的office文档: openoffice, starsuite
                       wvware(http://wvware.sourceforge.net/)
2)查看pdf文件:xpdf, acroread for linux, ggv
3)查看ps文件: gsview, ggv, kghostview
4)chm文件: archmage,chmsee, Xchm,kchmviewer, chmreader, gnochm
5)mht文件: ripmime,firefox+MAF插件
6)图表绘制: dia
7).bin虚拟光盘: 用bin2iso或bchunk转成iso后mount
8)压缩文件
 .rar: rar for linux或unrar
 .zip: unzip
 .bz2: bunzip2
 .tar/.tgz: tar
 .jar/.xpi: ark

* 中文输入法: scim, fcitx
* BBS软件:qterm, pcmanx-gtk2, {rxvt,xterm,gnome-terminal,...}+BBSbot

* 即时通讯:
1) QQ: lumaqq, Gaim+openq plugin, eva
2) MSN,icq,yahoo: Gaim

* web浏览器:mozilla-firefox, mozilla, opera
* ftp客户端(图形界面) :gftp, Iglooftp-1.23
* ftp客户端(终端) : lftp, ncftp
* ftp服务器: pureftpd, proftpd, vsftpd
* http下载(终端): wget, curl, prozilla
* bt下载: bittorrent(终端), azureus(图形界面)
* 多线程下载:MultiGet
* email软件(图形界面):thunderbird, sylpheed, evolution, opera M2
* email终端: mutt, pine, gnus
* RSS:liferea
* SMTP client: msmtp, esmtp

* 编辑器
1) 文本: vim, emacs, jedit
2) 16进制: hexedit, ghex, mc

* 图片浏览: gImageView, gqview, zgv(console), fbida(console)
* 图片处理: gimp, ImageMagick
* 屏幕抓图:
   抓成图片:ksnapshot, ImageMagick 的 import, gimp, xwd, scrot
             http://addons.mozine.org/firefox/209/ (抓网页)
   抓成视频:vnc2swf, vncrec, xvidcap
* 录音、音频处理: audacity, mhwaveedit, glame
* 视频处理:Cinelerra
* 音频格式转换:SoX
* 刻录:k3b, brasero, cdrecord

* 英汉字典: stardict(屏幕取词,词库大,英汉,汉英, 英英)
           ibmdict(包含科技词典,词库大,英汉,汉英)
           dictd:英汉 汉英 可以使用stardict的全部词库.
           cdict:英汉 汉英 使用安装方便,彩色显示.

* 科学计算: matlab, octave
* 科学作图: gnuplot, metapost,Asymptote

* 虚拟机
1) win下虚拟linux: cygwin, 老版virtual-pc, colinux
2) linux下虚拟win: win4lin
3) 跨平台: vmware, bochs, qemu, virtualbox
4) linux下运行windows程序: wine, easywine, winex, crossover office

让Pound支持HTTPS

[不指定 2007/12/28 16:49 | by ipaddr ]

1. What's Pound
http://www.apsis.ch/pound

The Pound program is a reverse proxy, load balancer and HTTPS front-end for Web server(s). Pound was developed to enable distributing the load among several Web-servers and to allow for a convenient SSL wrapper for those Web servers that do not offer it natively. Pound is distributed under the GPL - no warranty, it's free to use, copy and give away.

2. How to Use HTTPS
首先,生成证书:
openssl req -x509 -newkey rsa:1024 -keyout ipaddr.pem -out ipaddr.pem -days 365 -nodes
其次,增加一个Listen,在Pound.cfg里配置如下:
ListenHTTPS
 Address 0.0.0.0
 Port 443
 Cert "/usr/local/etc/ipaddr.pem"
End


注意,一定要加双引号.

MediaWiki 用户权限管理[转]

[不指定 2007/12/20 16:25 | by ipaddr ]

      安装MediaWiki之后,发现权限设置是完全开放的,需要做一些设置,例如禁止匿名用户编辑内容等等,但程序上却没有提供设置选项。网上查询了一下,却发现设置方法各有各的说法,没法,只有突破万难,到官方网站上查询一下,发现这MediaWiki的确是管理功能各方面多有不足。

      希望设置MediaWiki的用户权限,对匿名用户的设置可以从修改LocalSettings.php入手,下载该文件,然后按照希望设置的用户权限,在文件中插入对应的设置语句,存储后再上传回去就可以了。通过下面介绍的设置方法,可以阻止匿名用户注册,又或者阻止他们编辑,要求注册后才能够编辑,还可以设定注册前匿名用户可以查看那些页面。而在设置新用户的注册之后,管理人员仍可通过特殊页面手动为其他人创建用户。而用户的权限,则可以通过特殊页面内的User rights management进行管理。

LocalSettings.php用户权选设置相关选项

阻止新用户注册
1.5.x
$wgGroupPermissions['*' ]['createaccount'] = false;

注意: 阻止新用户注册,此时管理员可以到特殊页面上的用户登录页面(Special:UserLogin)里,输入希望为其建立帐户的某人的用户名与电子邮件地址,然后点击通过eMail(by email)按钮递交,系统将创建帐号并将随机生成的密码发送到指定email里。

设置匿名用户权限
1.5.x
$wgGroupPermissions['*' ]['createaccount'] = false;
$wgGroupPermissions['*' ]['read'] = true;
$wgGroupPermissions['*' ]['edit'] = false;

设置匿名用户可读内容
1.5.x
$wgWhitelistRead = array( "Main Page", "Special:Userlogin" );
$wgGroupPermissions['*' ]['read'] = false;

注意:具体需要对应自己的站点链接,而对于多字节语言的MediaWiki,例如中文首页链接index.php?title=%E9%A6%96%E9%A1%B5,这首页中文字符PHP可能无法正确解码。需要利用urldecode()函数转换一下,写为:

$wgWhitelistRead = array( urldecode("%E9%A6%96%E9%A1%B5") ;

Apple 确实为 iPhone 应用的开发定了条与众不同的道路--如 Jobs 大嘴巴所说--iPhone 上八成不再有什么第三方 native code 了,唯有 web app 才是 iPhone 第三方应用的正道--不过我猜如果哪个 ISV 面子够硬的话还是能有 SDK 来写 native 应用的 

Apple 的开发者网站 Developer Connection 上已经推出了 iPhone 部分。只有一个内容,就是 Web Development for iPhone。按照 Apple 的设想和许诺,开发者能够写出和 iPhone 内置应用在外观和功能上差不多的第三方程序–这是暗示内置程序亦是 web app 呢还是只是夸耀 apple 提供给第三方的开发能力使外人也能写出和内置的 native 程序同样等级的软件?这些第三方程序能与 iPhone 内置应用和服务无缝集成--包括拨打电话,发送 email 和在 Google Maps 上显示位置。

我想这种安排相比暴露一堆 API 的好处是:
- 引导了开发者把重心放到设计有创意的产品上,开发真正创新的有竞争力的应用,而不是继续鸡毛蒜皮的小修补,才是 iPhone 最需要的–大家可对 Windows Mobile 上 500 个第三方日历程序心有余悸?谁让 Microsoft 恨不得把自家牙缝里的东西都写进 MSDN 呢。对易用性大师 Apple 来说,暴露 API 似乎没有太多现实意义–出自这帮这帮家伙之手的 iPhone 内置应用基本没什么余地/缺陷留给第三方开发者填充或者弥补了,所以,你们不需要 OS 或者某种传统 framework 的 API 来再次开发,再所以,你们还是打起精神,为编写真正配得上 iPhone 的 cool app 整装待发吧。
- 再者,web app 开发好歹也算在标准接口上工作,绝大多数相关技术都是开放的,开发 iPhone 需要的参考资料–xml,html,javascript,rfc 里的协议等等等等–差不多全是 ISO,IEEE 等的标准。design house 为一百个手机写他妈的一百个的 phonebook 的黑暗日子总算有个头了– 哦,又忘了,iPhone 根本没打算让你为他重写 phonebook。

ADC 的 iPhone 开发准备内容只有两节:WebKit (或者 Safari,随便你) 和 Development Guidelines。WebKit 的内容不依 iPhone 的开发早就有了,不表。和其他手持系统上的开发不同,iPhone 上没有什么鸟 SDK 和 host 上的模拟器,如果说有的话,那 SDK 就是所有 web 开发相关标准–因为这是和 iPhone 打交道的接口,而模拟器就是 host 上的 Safari 啦,要不 Jobs 费劲地移植个 Safari Windows 版干嘛。
Guideline 是一对一和 iPhone 挂钩的东西,需要编写应用时阅读参考。不过先打个招呼,基于你的视角和观点,你会觉得 iPhone 上开发应用程序“居然沦落到”或者“终于进化到”这样的地步:If you are a seasoned web developer, there are probably just a few refinements you can make to ensure that your site looks great and works best on iPhone。

早先说了,在 Apple 的选择下,没有必要有类似 API 列表的 reference manual 了,因为 html,css 和 javascript 等内容本来就是开放的,所以只需说明应用与 iPhone 时的注意事项。
按 Apple 的表述,iPhone 的 Safari 和桌面系统 Safari 使用一样的 WebKit--这话其实言之不详,似是而非,虽然我们宁愿已是精确表述。换做老式应用开发,我们只需要知道系统底层机制的描述,再有文档可以查阅 API 变化(比如有无增减,参数类型含义有无变更)即可,而所谓使用同一 WebKit 并不明确,因为 WebKit 至少包含 WebCore 和 JavaScriptCore 两部分,细节颇多,随便挑个 DOM 对象比比,都有可能不同。

对开发者甚至一般 iPhone 用户来说,最重要的是,如 guideline 里一句话所说,It’s tempting to think that using an iPhone is like using a computer. But it isn’t. 体现在用户交互上,表现很明显。

通常的网页–其实是我们的电脑了–当然只考虑到最常用的交互设备是鼠标键盘等,iPhone 的输入设备–手指–在精确度,可识别性乃至可产生的 event 上不同于鼠标。guideline 上为此专门提供了 “Know Which Events You Can Handle” 和 “Design for Double Tap.”两节内容。不过当然记住,在 iPhone 那光滑性感的表面上游走的两根手指可没法实现什么复制粘贴,拖放和选中;另外,手指是有宽度的,设计过于密集的交互对象(比如网页上的超链接)会让人吐血的。

既然是些 Web app,那相关标准就要随时能涌上心头了,iPhone 伟大的 WebKit 引擎支持的标准“应该”和桌面 Safari 一样,包括:
* HTML 4.01
* XHTML 1.0
* CSS 2.1,部分 CSS 3.xx
* JavaScript 1.4, 包括 DOM 支持
* AJAX 技术, 包括 XMLHTTPRequest
又因为 Apple 让 iPhone 上的 WebKit 和桌面一样,所以 iPhone 会另类地不支持 WML (Wireless Markup Language),不过支持 XHTML mobile profile。开发适合 iPhone 浏览的页面和开发适用于通常浏览器的页面有很多详细之处,如果感兴趣,ADC 里也列出了相关参考资料。

下面,终于是有点入题的内容了–怎么实用 iPhone 上的服务。
电话:
1-408-555-5555
吐血,也可以理解,一切都是协议。这下好了,你连炫耀一下知道 MO call,MT call 的机会都没了。
Safari 也可以自动把一串数字解释成电话号码。

至于 mail 和 google map,和通常网页也无区别啦:mailto: 协议以及通常的 google map url 就行了。

在编写为 iPhone 优化的页面是,再一个参考是 Safari 发送的 agent 字符串:
Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3
和桌面平台的 Safari 很像,但是多了
platform 描述:(iPhone; U; CPU like Mac OS X; en)
mobile 版本:Version/3.0 Mobile/1A543a Safari/419.3

在使用 CSS 时,要考虑到 iPhone 只支持 screen –你没看错哈–而不支持 print 和 handheld media query–这些都是 CSS3 的特性。所以,编写 iPhone 优化的页面时,可以这样引用 css 文件:

使用 only 关键字。这样也不会影响其他浏览器。

需要注意的是:

1.element要用getElementById or ByTagName来得到,

2.setAttribute("class", vName)中class是指改变"class"这个属性,所以要带引号。

3.IE中要把class改成className,.....IE不认class,所以最好写两句,都用上吧。

W3C DOM - {setAttribute()}

setAttribute(string name, string value):增加一个指定名称和值的新属性,或者把一个现有的属性设定为指定的值。

1、关于class和className
class属性在W3C DOM中扮演着很重要的角色,但由于浏览器差异性仍然存在。使用setAttribute("class", vName)语句动态设置
Element的class属性在firefox中是行的通的,在IE中却不行。因为使用IE内核的浏览器不认识"class",要改用"className";
同样,firefox 也不认识"className"。所以常用的方法是二者兼备:
   element.setAttribute("class", vName);
   element.setAttribute("className", vName);  //for IE

2、setAttribute()的差异
我们经常需要在JavaScript中给Element动态添加各种属性,这可以通过使用setAttribute()来实现,这就涉及到了浏览器的兼容性问题。
var bar = document.getElementById("foo");
bar.setAttribute("onclick", "javascript:alert('This is a test!');");
这里利用setAttribute指定e的onclick属性,简单,很好理解。但是IE不支持,IE并不是不支持setAttribute这个函数,
而是不支持用setAttribute设置某些属性,例如对象属性、集合属性、事件属性,也就是说用setAttribute设置style和onclick这些属性
在IE中是行不通的。为达到兼容各种浏览器的效果,可以用点符号法来设置Element的对象属性、集合属性和事件属性。
document.getElementById("foo").className = "fruit";
document.getElementById("foo").style.cssText = "color: #00f;";
document.getElementById("foo").style.color = "#00f";
document.getElementById("foo").onclick= function () { alert("This is a test!"); } 

前面我们讨论了如何在 JavaScript 语言中实现对私有实例成员、公有实例成员、私有静态成员、公有静态成员和静态类的封装。这次我们来讨论一下面向对象程序设计中的另外两个要素:继承与多态。

JavaScript 是一种非常灵活的面向对象程序设计语言,它与传统的强类型的面向对象程序设计语言(如 C++,Java,C# 等)有很大不同,所以要实现如 C++、java、C# 当中的一些特性就需要换一种思考方式来解决。今天主要讨论如何在 JavaScript 脚本中实现数据的封装(encapsulation)。

数据封装说的简单点就是把不希望调用者看见的内容隐藏起来。它是面向对象程序设计的三要素之首,其它两个是继承和多态,关于它们的内容在后面再讨论。

关于数据封装的实现,在 C++、Java、C# 等语言中是通过 public、private、static 等关键字实现的。在 JavaScript 则采用了另外一种截然不同的形式。在讨论如何具体实现某种方式的数据封装前,我们先说几个简单的,大家所熟知却又容易忽略的 JavaScript 的概念。

分页: 8/20 第一页 上页 3 4 5 6 7 8 9 10 11 12 下页 最后页 [ 显示模式: 摘要 | 列表 ]