How to Install NoCat Splash and Link it to an External Web Server

Compile NoCatSplash:
  1. goto http://nocat.net/downloads/NoCatSplash/ and download the latest stable tarball.
  2. tar zxvf the tarball, cd to the resulting subdirectory and run make. The configure script appears to do nothing, so there is no point in running configure.
  3. Run "make install"
Edit nocat.conf:
  1. cd /usr/local/etc and open nocat.conf in a text editor
  2. change LoginTimeOut to a reasonable value. I changed it to one hour
    LoginTimeout 3600
  3. enter the device names of your WAN interface
    ExternalDevice eth1
  4. enter the device name of your LAN interface
    InternalDevice eth0
  5. change the name dns server to the dns server of your LAN
    DNSAddr 192.168.3.1
  6. enter the mask of the LAN, which for which this machine serves as a dhcp server
    LocalNetwork 192.168.3.0/24
  7. uncomment allowedwebhosts, and add the name of your web server
    HomePage http://AcumenConsulting.Net
  8. change the name of SplashForm to a file which you will write
    SplashForm ToAcumen.html
  9. Here is a copy of nocat.conf which I created.

Edit the file specified by the SplashForm macro SplashForm:

  1. change to the directory specified DocumentRoot. The default value is /usr/local/share/NoCatSplash/htdocs.
    cd /usr/local/share/NoCatSplash/htdocs
  2. open the file specified by the macro SplashForm. In this case it is ToAcumen.html.
  3. Use the html, meta redirect command to send request to the external website. Pass the IP address of the DHCP server as variable PortalIP.
    < html > 
    < META HTTP-EQUIV="Refresh" Content= "1; URL='http://acumensoftwareinc.com/splash.php?PortalIP=192.168.3.1'" > 
    < /html > 
Configure your web server to accept the request, and to have the correct form for letting the user accept the agrement terms.
  1. Call session_start(), include a php file which defines the function record_vars. to save the variable PortalIP. For example:
    < ?php
    session_start();

    include( "splash.func.php");
    include( "func.php");

    record_vars();

    print_repair_windows_page();

    ? >
  2. Here is the file splash.func.php which contains the functions record_vars, and PrintAgree:

    function record_vars() {
    if (isset( $_REQUEST['PortalIP']) && !isset($_SESSION[ 'PortalIP'])) {
    $_SESSION[ 'PortalIP'] = $_REQUEST['PortalIP'];
    }
    //echo "PortalIP=" . $_SESSION['PortalIP'] . "
    ";
    }

    function PrintAgree() {
    $PortalIP = $_SESSION[ 'PortalIP'];
    printf( "< form method='POST' action='http://%s:5280/' > \n", $PortalIP);
    printf( "< input type='image' name='mode_login' src='AgreeAngel.jpg' > \n");
    printf( "< input type='hidden' name='redirect' value='http://AcumenConsultingInc.Net/Welcome.html' > \n");
    printf( "< /form > ");
    }

    function PrintAgreeTerms() {
    printf( "< P > I have read the < a href=TermsOfUse.php > usage agreement < /a > and have agreed to the terms. < br / > \n");
    PrintAgree();
    }


  3. Call the function PrintAgree, or PrintAgreeTerms from within your php pages, to prent the form which passes control back to the user.

The form has two variables, mode_login, and redirect. NoCatSplash, looks for these two variables and passes control back to the user if they are defined.

Adjust the bash scripts to prevent silly error messages:

  1. cd /usr/local/libexec/NoCatSplash/
  2. open initialize.fw in a text editor, and comment out these lines:
    > for module in ip_tables ipt_REDIRECT ipt_MASQUERADE ipt_MARK ipt_REJECT \
    > ipt_TOS ipt_LOG iptable_mangle iptable_filter iptable_nat ip_nat_ftp \
    > ip_conntrack ipt_mac ipt_state ipt_mark; do

    > modprobe $module
    > done
  3. these modules should be loaded automatically, or compiled into the kernel. You should not use this for loop to load the modules because the modules are very system dependent.

Login as root and start splashd. edit the PATH to include the directory /usr/local/libexec/NoCatSplash . I edited .bash_profile in /root to have the line:
export PATH=/usr/local/libexec/NoCatSplash:"${PATH}"

  • make sure you have libghttp installed. To install this from gentoo linux, use emerge:
    emerge -v gnome-base/libghttp

    Start splashd. The output should look like: Chocolate NoCatSplash-0.92 # splashd
    Message: My node ID is 000103D34CFD (eth0)
    Message: Read 43 config items from /usr/local/etc/nocat.conf
    Message: initializing static splash page
    Message: Got command /usr/local/libexec/NoCatSplash/initialize.fw from action ResetCmd
    Message: starting main loop

    ** WARNING **: ResetCmd on peer (null) returned 1
    Message: Checking peers for expiration
    Message: Checking peers for expiration

  • try estabilishing a network connection from a DHCP client, on the LAN, and then start a web browers on this client. The server output should look like:
    Message: Captured peer 192.168.3.98
    Message: Splashed peer 192.168.3.98

    ** WARNING **: File not found: /usr/local/share/NoCatSplash/htdocs/favicon.ico
    Message: Captured peer 192.168.3.98
    Message: Splashed peer 192.168.3.98
  • On the client side you should see the web site specfied previously. Click the "I accept" button, and you should get the welcome.html. The server output should look like:
    Message: Checking peers for expiration
    Message: Accepting peer 192.168.3.98
    Message: Got command /usr/local/libexec/NoCatSplash/access.fw permit 00:90:4B:EC:C2:23 192.168.3.98 Public from action PermitCmd

  • You now have splashd working correctly. Set up splashd as a service.
    1. change to /etc/init.d, cd /etc/init.d
    2. open a new file, splashd in a text editor
    3. write a script, or use this one.
    4. save the file, and do "chmod +x splashd"
    5. add the file to the start up list, "rc-update add splashd default"
    6. start the script, ./splashd
    You are done!
基于STM32设计的数字示波器全套资料(原理图、PCB图、源代码) 硬件平台: 主控器:STM32F103ZET6 64K RAM 512K ROM 屏幕器:SSD1963 分辨率:480*272 16位色 触摸屏:TSC2046 模拟电路: OP-TL084 OP-U741 SW-CD4051 CMP-LM311 PWR-LM7805 -LM7905 -MC34063 -AMS1117-3.3 DRT-ULN2003 6.继电器:信号继电器 7.电源:DC +12V 软件平台: 开发环境:RealView MDK-ARM uVision4.10 C编译器:ARMCC ASM编译器:ARMASM 连机器:ARMLINK 实时内核:UC/OS-II 2.9实时操作系统 GUI内核:uC/GUI 3.9图形用户接口 底层驱动:各个外设驱动程序 数字示波器功能: 波形发生器:使用STM32一路DA实现正弦,三角波,方波,白噪声输出。 任意一种波形幅值在0-3.3V任意可调、频率在一定范围任意可调、方波占空比可调。调节选项可以通过触摸屏完成设置。 SD卡存储: SD卡波形存储输出,能够对当前屏幕截屏,以JPG格式存储在SD卡上。能够存储1S内的波形数据,可以随时调用查看。 数据传输:用C#编写上位机,通过串口完成对下位机的控制。(1)实现STOP/RUN功能(2)输出波形电压、时间参数(3)控制截屏(4)控制波形发生器(5)控制完成FFT(6)波形的存储和显示 图形接口: UCGUI 水平扫速: 250 ns*、500ns、1μs、5 μs、10μs、50μs、500 μs、5ms 、50ms 垂直电压灵敏度:10mV/div, 20mV/div, 50mV/div, 0.1V/div, 0,2V/div, 0.5V/div, 1V/div,2V/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值