1. PHP / Говнокод #826

    +145

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    **
     * От этого класса наследуются все остальные
     *
     */
    abstract class Object {
    	
    }

    Из говно^H^H^H^H^Hблогодвижка Livestreet.

    guest, 07 Апреля 2009

    Комментарии (6)
  2. Java / Говнокод #825

    +70.9

    1. 1
    2. 2
    3. 3
    4. 4
    if (cache != null) {
    			UserSession us = (UserSession)cache.get(FQN, sessionId);
    			return (us != null ? us : null);
    		}

    guest, 07 Апреля 2009

    Комментарии (2)
  3. Куча / Говнокод #824

    +148

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    <title>Under Construction</title>
    <html>
    <td align=center>
    	<img src="Under-Construction.gif" 
    		style="
    			display: block;
    			width: 550;
    			margin-left: auto;
    			margin-right: auto
    	
    " />
    </td>
    </html>

    HTML 5.0 + CSS 3.0

    guest, 07 Апреля 2009

    Комментарии (1)
  4. Куча / Говнокод #823

    +151

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    # Безлимит со статических адресов
    ### здесь с адресов 192.168.0.0/24 пускает только в сеть 10.x.x.x, но не в интернет.
    ### при задании четко route add x.x.x.x gw 10.254.254.254, то на этот x.x.x.x ходит нормально, а дальше нини...
    iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth2 -j SNAT --to-source 10.x.x.x
    
    # Лимит с адресов полученных при подключении к pptpd
    ### здесь вообще все нормально, все кто подключаются к pptpd ходят в интернет по правильному ипу.
    iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j SNAT --to-source 212.x.x.x
    
    # результат route
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    192.168.1.50    *               255.255.255.255 UH    0      0        0 ppp0
    ### здесь все клиента pptpd...
    212.x.x.x       *               255.255.255.224 U     0      0        0 eth1
    192.168.0.0     *               255.255.255.0   U     0      0        0 eth0
    10.0.0.0        *               255.0.0.0       U     0      0        0 eth2
    default         212.x.x.x       0.0.0.0         UG    0      0        0 eth1
    default         10.x.x.x        0.0.0.0         UG    1      0        0 eth2

    iptables

    guest, 07 Апреля 2009

    Комментарии (1)
  5. Куча / Говнокод #822

    +148

    1. 001
    2. 002
    3. 003
    4. 004
    5. 005
    6. 006
    7. 007
    8. 008
    9. 009
    10. 010
    11. 011
    12. 012
    13. 013
    14. 014
    15. 015
    16. 016
    17. 017
    18. 018
    19. 019
    20. 020
    21. 021
    22. 022
    23. 023
    24. 024
    25. 025
    26. 026
    27. 027
    28. 028
    29. 029
    30. 030
    31. 031
    32. 032
    33. 033
    34. 034
    35. 035
    36. 036
    37. 037
    38. 038
    39. 039
    40. 040
    41. 041
    42. 042
    43. 043
    44. 044
    45. 045
    46. 046
    47. 047
    48. 048
    49. 049
    50. 050
    51. 051
    52. 052
    53. 053
    54. 054
    55. 055
    56. 056
    57. 057
    58. 058
    59. 059
    60. 060
    61. 061
    62. 062
    63. 063
    64. 064
    65. 065
    66. 066
    67. 067
    68. 068
    69. 069
    70. 070
    71. 071
    72. 072
    73. 073
    74. 074
    75. 075
    76. 076
    77. 077
    78. 078
    79. 079
    80. 080
    81. 081
    82. 082
    83. 083
    84. 084
    85. 085
    86. 086
    87. 087
    88. 088
    89. 089
    90. 090
    91. 091
    92. 092
    93. 093
    94. 094
    95. 095
    96. 096
    97. 097
    98. 098
    99. 099
    100. 100
    #Модули iptables
    modprobe ip_conntrack
    modprobe ip_conntrack_ftp
    #При выклюсеном selinux будет ругаться.
    #iptables -F RH-Firewall-1-INPUT
    iptables -t nat -F
    iptables -t mangle -F
    #
    #Политики по умолчанию
    #iptables -P INPUT DROP
    #iptables -P OUTPUT DROP
    #Установка маршрутов по умолчанию, основной провайдер eth0, вспомагательный
    #провайдер eth2.
    #Для ручного переключения ручного.
    #Установка основного маршрута на Истра-Нэт.
    #route del default
    #route add default gw ваш_шлюз_первого прова dev eth0
    #
    #Установка основного маршрута на Телеком-Нэт
    #
    #route del default
    #route add default gw ваш_шлюз_второго прова dev eth2
    #
    #Настройка NAT для выхода клиентов в инернет.
    #Отправка всех клиентов под сети 192.168.1.0/24 в интеренет.
    iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source ваш_ip_карты
    #iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth2 -j SNAT --to-source ваш_ip_карты2
    #
    #Для совместного использования со сквидом.
    iptables -t mangle -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -d ! 192.168.1.200 -j QUEUE
    iptables -I OUTPUT 1 -p tcp -m tcp -s 192.168.1.200 --sport 3128 -d 192.168.1.0/24 -j QUEUE
    iptables -t nat -A PREROUTING -i eth1 -p tcp -s 192.168.1.0/24 -d 192.168.1.200 --dport 80 -j ACCEPT
    iptables -t nat -A PREROUTING -i eth1 -p tcp -s 192.168.1.0/24 --dport 80 -j REDIRECT --to-ports 3128
    #
    #Настройка NAT во внутрь сети.
    #Настройка портов во внутрь сети.
    iptables -t nat -A PREROUTING -p tcp -s any/0 -d ваш_ip_карты --dport 15081 -j DNAT --to-destination 192.168.1.110:15081
    iptables -A FORWARD -i eth1 -d 192.168.1.110 -p tcp --dport 15081 -j QUEUE
    #
    #Блокировка неверных пакетов.
    iptables -A INPUT -m state --state INVALID -j DROP
    #
    #Open connect to server, from global network.
    #Открываю себе доступ к консоли. Этот трафик не считаю.
    #Ограничения на подключение к ssh.
    iptables -A INPUT -i eth3 -p tcp --dport 1981 -m state --state NEW -m recent --name SSH --set
    iptables -A INPUT -i eth3 -p tcp --dport 1981 -m state --state NEW -m recent --name SSH --update --seconds 60 --hitcount 2 -j DROP
    iptables -A INPUT -i eth3 -p tcp --dport 1981 -m state --state NEW -j ACCEPT
    #
    #Открываю доступ к ssh из дома.
    iptables -A INPUT -p tcp -i eth3 -s any/0 -d ваш_ip_карты --dport 22 -j ACCEPT
    iptables -A OUTPUT -p tcp -o eth3 -s ваш_ip_карты --sport 22 -d any/0 -j ACCEPT
    #
    #Открываю доступ к серверу www.
    #Allowing Remote Access to a Local Web Server
    iptables -A INPUT -i eth3 -p tcp -s any/0 --sport 1024:65535 -d ваш_ip_карты --dport 80 -j QUEUE
    iptables -A OUTPUT -o eth3 -p tcp ! --syn -s ваш_ip_карты --sport 80 -d any/0 --dport 1024:65535 -j QUEUE
    #Открываю доступ к серверу www.
    #По порту 443.
    iptables -A INPUT -i eth3 -p tcp -s any/0 --sport 1024:65535 -d ваш_ip_карты --dport 443 -j QUEUE
    iptables -A OUTPUT -o eth3 -p tcp ! --syn -s ваш_ip_карты --sport 443 -d any/0 --dport 1024:65535 -j QUEUE
    #
    #Настройка ФТП доступа.
    #Open connect to FTP, from network.
    iptables -A INPUT -p tcp -i eth1 -s 192.168.1.0/24 --sport 40000:65535 -d 192.168.1.200 --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
    iptables -A OUTPUT -p tcp -o eth1 -s 192.168.1.200 --sport 21 -d 192.168.1.0/24 --dport 40000:65535 -m state --state ESTABLISHED -j ACCEPT
    iptables -A INPUT -p tcp -i eth1 -s 192.168.1.0/24 --sport 1024:65535 -d 192.168.1.200 --dport 40000:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A OUTPUT -p tcp -o eth1 -s 192.168.1.200 --sport 40000:65535 -d 192.168.1.0/24 --dport 40000:65535 -m state --state ESTABLISHED -j ACCEPT
    iptables -A OUTPUT -p tcp -o eth1 -s 192.168.1.200 --sport 20 -d 192.168.1.0/24 --dport 40000:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A INPUT -p tcp -i eth1 -s 192.168.1.0/24 --sport 40000:65535 -d 192.168.1.200 --dport 20 -m state --state ESTABLISHED -j ACCEPT
    #
    # DNS client modes (53)
    iptables -A OUTPUT -o eth0 -p udp -s ваш_ip_карты --sport 40000:65535 -d 217.150.34.129 --dport 53 -j QUEUE
    iptables -A INPUT -i eth0 -p udp -s 217.150.34.129 --sport 53 -d ваш_ip_карты --dport 40000:65535 -j QUEUE
    iptables -A OUTPUT -o eth0 -p udp -s ваш_ip_карты --sport 40000:65535 -d 217.150.35.129 --dport 53 -j QUEUE
    iptables -A INPUT -i eth0 -p udp -s 217.150.35.129 --sport 53 -d ваш_ip_карты --dport 40000:65535 -j QUEUE
    # TCP client to server requests are allowed by the protocol
    # if UDP requests fail. This is rarely seen. Usually, clients
    # use TCP as a secondary nameserver for zone transfers from
    # their primary nameservers, and as hackers.
    iptables -A OUTPUT -o eth0 -p tcp -s ваш_ip_карты --sport 40000:65535 -d 217.150.34.129 --dport 53 -j QUEUE
    iptables -A INPUT -i eth0 -p tcp ! --syn -s 217.150.34.129 --sport 53 -d ваш_ip_карты --dport 40000:65535 -j QUEUE
    iptables -A OUTPUT -o eth0 -p tcp -s ваш_ip_карты --sport 40000:65535 -d 217.150.35.129 --dport 53 -j QUEUE
    iptables -A INPUT -i eth0 -p tcp ! --syn -s 217.150.35.129 --sport 53 -d ваш_ip_карты --dport 40000:65535 -j QUEUE
    # server to server query or response
    # Caching only name server uses UDP, not TCP
    iptables -A OUTPUT -o eth0 -p udp -s ваш_ip_карты --sport 53 -d 217.150.34.129 --dport 53 -j QUEUE
    iptables -A INPUT -i eth0 -p udp -s 217.150.34.129 --sport 53 -d ваш_ip_карты --dport 53 -j QUEUE
    iptables -A OUTPUT -o eth0 -p udp -s ваш_ip_карты --sport 53 -d 217.150.35.129 --dport 53 -j QUEUE
    iptables -A INPUT -i eth0 -p udp -s 217.150.35.129 --sport 53 -d ваш_ip_карты --dport 53 -j QUEUE
    #
    #Ограничения на forward
    #Блокировка неверных пакетов.
    iptables -A FORWARD -m state --state INVALID -j DROP
    # защита от скрытого сканирования портов
    iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 15/minute -s 192.168.1.0/24 -d any/0 -j QUEUE
    #
    #Блокируем черезмерно большое кол-во icmp запрсов.
    iptables -A FORWARD -p icmp -m limit --limit 250/sec --limit-burst 500 -j QUEUE
    iptables -A FORWARD -p icmp -j DROP

    правила iptables

    guest, 07 Апреля 2009

    Комментарии (29)
  6. PHP / Говнокод #821

    +163.9

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    // Эта функция определяет является ли символ цифрой;
    function IsCif($cifra) {
    	$cif=array();
    	$cif[0]='0';
    	$cif[1]='1';
    	$cif[2]='2';
    	$cif[3]='3';
    	$cif[4]='4';
    	$cif[5]='5';
    	$cif[6]='6';
    	$cif[7]='7';
    	$cif[8]='8';
    	$cif[9]='9';
    	for($i=0;$i<10;$i++) {
    		if($cifra==$cif[$i]) return 1;
    	}
    	return 0;
    }}

    взято с http://www.int-park.com

    guest, 06 Апреля 2009

    Комментарии (10)
  7. C++ / Говнокод #820

    +154

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    bool tblmove(tbltype &tbl, tblmoveT move)
    {
        tblpos emptypos = tblgetempty(tbl);
        tblelmnt elmnt;
        switch(move)
        {
        case UP:
            if(emptypos.i == tbl.begin()) break;
            elmnt = (emptypos.i-1)->at(distance((emptypos.i)->begin(),emptypos.j));
            (emptypos.i-1)->at(distance((emptypos.i)->begin(),emptypos.j)) = EMPTYEL;
            *(emptypos.j) = elmnt;
            return true;
        case DOWN:
            if(emptypos.i+1 == tbl.end()) break;
            elmnt = (emptypos.i+1)->at(distance((emptypos.i)->begin(),emptypos.j));
            (emptypos.i+1)->at(distance((emptypos.i)->begin(),emptypos.j)) = EMPTYEL;
            *(emptypos.j) = elmnt;
            return true;
        case LEFT:
            if(emptypos.j == (emptypos.i)->begin()) break;
            elmnt = *(emptypos.j-1);
            *(emptypos.j-1) = EMPTYEL;
            *(emptypos.j) = elmnt;
            return true;
        case RIGHT:
            if(emptypos.j+1 == (emptypos.i)->end()) break;
            elmnt = *(emptypos.j+1);
            *(emptypos.j+1) = EMPTYEL;
            *(emptypos.j) = elmnt;
            return true;
        }
        return false;
    }

    кусок из самопальных пятнашек. stl только усугибило картину. тошнотворно....

    guest, 06 Апреля 2009

    Комментарии (0)
  8. C++ / Говнокод #819

    +140.6

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    p2 = p2 + sizeof("\nbookname=") - 1;
        p3 = strchr(p2, '\n');
        bookname.assign(p2, p3 - p2);
    
        p2 = strstr(p1, "\nauthor=");
        if (p2)
        {
            p2 = p2 + sizeof("\nauthor=") - 1;
            p3 = strchr(p2, '\n');
            author.assign(p2, p3 - p2);
        }
    
        p2 = strstr(p1, "\nemail=");
        if (p2)
        {
            p2 = p2 + sizeof("\nemail=") - 1;
            p3 = strchr(p2, '\n');
            email.assign(p2, p3 - p2);
        }
    
        p2 = strstr(p1, "\nwebsite=");
        if (p2)
        {
            p2 = p2 + sizeof("\nwebsite=") - 1;
            p3 = strchr(p2, '\n');
            website.assign(p2, p3 - p2);
        }
    
        p2 = strstr(p1, "\ndate=");
        if (p2)
        {
            p2 = p2 + sizeof("\ndate=") - 1;
            p3 = strchr(p2, '\n');
            date.assign(p2, p3 - p2);
        }
    
        p2 = strstr(p1, "\ndescription=");
        if (p2)
        {
            p2 = p2 + sizeof("\ndescription=") - 1;
            p3 = strchr(p2, '\n');
            description.assign(p2, p3 - p2);
        }
    
        p2 = strstr(p1, "\nsametypesequence=");
        if (p2)
        {
            p2 += sizeof("\nsametypesequence=") - 1;
            p3 = strchr(p2, '\n');
            sametypesequence.assign(p2, p3 - p2);
        }

    Опять на арене Стардикт, написанный криворукими китаезами. Вот как они читают значения из БИНАРНОГО файла (это только кусочек листинга):

    guest, 06 Апреля 2009

    Комментарии (0)
  9. Куча / Говнокод #818

    +140.3

    1. 1
    2. 2
    3. 3
    4. 4
    WHSShell = Новый COMОбъект("WScript.Shell");
    WHSShell.SendKeys("%");
    WHSShell.SendKeys("~");
    WHSShell.SendKeys("{DOWN 9}");

    Это - вызов функции "печать - предварительный просмотр" имени гениальных программистов Раруса.

    guest, 06 Апреля 2009

    Комментарии (2)
  10. C++ / Говнокод #817

    +142.8

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    #include <stdio.h>
    #include <alloc.h>
    
    #define PRINT_RESULT {for(cheacksum1=0,i=MaxV-1;i>=0;cheacksum1+=vect[i--]);for(j=i=cheacksum2=0;j<MaxA;i<MaxA?cheacksum2+=mass[j][i++]:(j++,i=0));printf("CHEACKSUM: %d <-> %d\n",cheacksum2,cheacksum1);}
    
    int main(void)
    {
        int **mass,*vect,MaxV,MaxA,x,y,i,j,z,k,l,s,m,cheacksum1,cheacksum2;
        MaxV *= MaxV = MaxA = 200; 
        for(i=0,vect=(int*)malloc(sizeof(int)*MaxV),mass=(int**)malloc(sizeof(int*)*MaxA);i<MaxA;mass[i++]=(int*)malloc(sizeof(int)*MaxA));
        for(i=0,j=0;i<MaxA;j<MaxA?mass[i][j++]=rand()%10:(i++,j=0));
        /* A */ for(y=z=j=0,i=x=MaxA-1;y<MaxA;(j>=MaxA||i>=MaxA?((x>0?x--:y++),i=x,j=y):vect[z++]=mass[i++][j++]));
        PRINT_RESULT;
        /* B */ for(y=x=z=j=i=0;y<MaxA;(j>=MaxA||i<0?((x<MaxA-1?x++:y++),i=x,j=y):vect[z++]=mass[i--][j++]));
        PRINT_RESULT;
        /* C */ for(s=z=k=0,l=1,m=x=y=MaxA%2==0?m=x=y=MaxA/2-1:MaxA/2;x<MaxA&&y<MaxA&&x>=0&&y>=0;k++<l?vect[z++]=mass[s==1?y++:s==3?y--:y][s==0?x++:s==2?x--:x]:(k=0,s++<3?(s==2?l++:0):(s=0,l++)));
        PRINT_RESULT;
        /* D */ for(z=x=y=k=0,s=-1,l=MaxA-1;l>=0;l>0?k++<l?vect[z++]=mass[s==0?y++:s==2?y--:y][s==1?x--:s==0||s==2?x:x++]:(k=0,s++<3?(s==2?l--:0):(s=0,l--)):(vect[z]=mass[y][x],l--));
        PRINT_RESULT;
        for(x=0;x<MaxA;free(mass[x++])); free(vect); free(mass);
        return 0;
    }

    Лабораторная работа (давно было дело... не помню, окончательная версия или нет) :]

    Обход матрицы и запись результата обхода в одномерный массив.
    а) по правой диагонали начиная с правого верхнего
    элемента
    б) с левого верхнего.
    с) по сперали
    д) по сперали начниная с левого верхрего элемента.

    guest, 06 Апреля 2009

    Комментарии (4)