+ Reply to Thread
Results 1 to 5 of 5

Thread: Script for getting IP Address
      
   

  1. #1
    wgreene is offline Sergeant Major
    Join Date
    Sep 2005
    Location
    Missouri
    Posts
    89

    Default Script for getting IP Address

    Hello Everyone, I am going to be giving away free music as a promotional deal for a while. I would like to collect the ip address of those that contact me so that I can cut down on giving away music to people who are just trying to get as much as they can. I want to limit it to 1 per IP Address. I've done some searching but haven't found too much. I am currently using
    FormMail.php v5.0 and thought maybe I could add a string that would send along their IP Address. Thanks for any help!

    Wilson

  2. #2
    navaldesign's Avatar
    navaldesign is online now General & Forum Moderator
    Join Date
    Oct 2005
    Location
    Italy
    Posts
    12,062

    Default Re: Script for getting IP Address

    Add these lines in your script, to "grab" the IP address, as well as Browser and date:

    // Find Server date and Time
    $date = date("l jS F Y, g:i A");

    // Find Browser and IPaddress
    $browser =$_SERVER['HTTP_USER_AGENT'];

    $ip = $_SERVER['REMOTE_ADDR'];



    Then add these lines (or similar) to the message body, to have the info added in the message (you must see the actuall script that you use, to see how these lines can be added in the message body):

    $pfw_message = ............ This is similar to how your script message body is being created

    These are the lines to add

    . "Date of submission : $date\n"
    . "Browser : $browser\n"
    . "IP address : $ip\n";

    If you need further help post your script here.
    Navaldesign
    Logger Lite: Low Cost, Customizable, multifeatured Login script
    Instant Download Cart: a Powerfull, Customized, in site, DB driven, e-products Cart
    DBTechnosystems.com Forms, Databases, Shopping Carts, Instant Download Carts, Loggin Systems and more....
    Advanced BlueVoda Form Processor : No coding form processor! Just install and use! Now with built in CAPTCHA!


  3. #3
    wgreene is offline Sergeant Major
    Join Date
    Sep 2005
    Location
    Missouri
    Posts
    89

    Default Re: Script for getting IP Address

    Your the man navaldesign, here is my script. I guess I just need to know where to insert the lines above.....thanks alot, I appreciate it!
    I chopped off the header.


    // for ultimate security, use this instead of using the form
    $recipient = "webmaster@hiphoptraxx.com"; // youremail@domain.com

    // bcc emails (separate multiples with commas (,))
    $bcc = "";

    // referers.. domains/ips that you will allow forms to
    // reside on.
    $referers = array ('hiphoptraxx.com','www.hiphoptraxx.com','kwneterp rise******.com','70.86.134.194','70.242.142.136');

    // banned emails, these will be email addresses of people
    // who are blocked from using the script (requested)
    $banlist = array ('*@somedomain.com', 'user@domain.com', 'etc@domains.com');

    // field / value seperator
    define("SEPARATOR", ($separator)?$separator:": ");

    // content newline
    define("NEWLINE", ($newline)?$newline:"\n");

    // formmail version (for debugging mostly)
    define("VERSION", "5.0");


    // our mighty error function..
    function print_error($reason,$type = 0) {
    build_body($title, $bgcolor, $text_color, $link_color, $vlink_color, $alink_color, $style_sheet);
    // for missing required data
    if ($type == "missing") {
    if ($missing_field_redirect) {
    header("Location: $missing_field_redirect?error=$reason");
    exit;
    } else {
    ?>
    The form was not submitted for the following reasons:<p>
    <ul><?
    echo $reason."\n";
    ?></ul>
    Please use your browser's back button to return to the form and try again.<?
    }
    } else { // every other error
    ?>
    The form was not submitted because of the following reasons:<p>
    <?
    }
    echo "<br><br>\n";
    echo "<small>This form is powered by <a href=\"http://www.dtheatre.com/scripts/\">Jack's Formmail.php ".VERSION."</a></small>\n\n";
    exit;
    }

    // function to check the banlist
    // suggested by a whole lot of people.. Thanks
    function check_banlist($banlist, $email) {
    if (count($banlist)) {
    $allow = true;
    foreach($banlist as $banned) {
    $temp = explode("@", $banned);
    if ($temp[0] == "*") {
    $temp2 = explode("@", $email);
    if (trim(strtolower($temp2[1])) == trim(strtolower($temp[1])))
    $allow = false;
    } else {
    if (trim(strtolower($email)) == trim(strtolower($banned)))
    $allow = false;
    }
    }
    }
    if (!$allow) {
    print_error("You are using from a <b>banned email address.</b>");
    }
    }

    // function to check the referer for security reasons.
    // contributed by some one who's name got lost.. Thanks
    // goes out to him any way.
    function check_referer($referers) {
    if (count($referers)) {
    $found = false;

    $temp = explode("/",getenv("HTTP_REFERER"));
    $referer = $temp[2];

    if ($referer=="") {$referer = $_SERVER['HTTP_REFERER'];
    list($remove,$stuff)=split('//',$referer,2);
    list($home,$stuff)=split('/',$stuff,2);
    $referer = $home;
    }

    for ($x=0; $x < count($referers); $x++) {
    if (eregi ($referers[$x], $referer)) {
    $found = true;
    }
    }
    if ($referer =="")
    $found = false;
    if (!$found){
    print_error("You are coming from an <b>unauthorized domain.</b>");
    error_log("[FormMail.php] Illegal Referer. (".getenv("HTTP_REFERER").")", 0);
    }
    return $found;
    } else {
    return true; // not a good idea, if empty, it will allow it.
    }
    }
    if ($referers)
    check_referer($referers);

    if ($banlist)
    check_banlist($banlist, $email);

    // This function takes the sorts, excludes certain keys and
    // makes a pretty content string.
    function parse_form($array, $sort = "") {
    // build reserved keyword array
    $reserved_keys[] = "MAX_FILE_SIZE";
    $reserved_keys[] = "required";
    $reserved_keys[] = "redirect";
    $reserved_keys[] = "require";
    $reserved_keys[] = "path_to_file";
    $reserved_keys[] = "recipient";
    $reserved_keys[] = "subject";
    $reserved_keys[] = "sort";
    $reserved_keys[] = "style_sheet";
    $reserved_keys[] = "bgcolor";
    $reserved_keys[] = "text_color";
    $reserved_keys[] = "link_color";
    $reserved_keys[] = "vlink_color";
    $reserved_keys[] = "alink_color";
    $reserved_keys[] = "title";
    $reserved_keys[] = "missing_fields_redirect";
    $reserved_keys[] = "env_report";
    $reserved_keys[] = "submit";
    if (count($array)) {
    if (is_array($sort)) {
    foreach ($sort as $field) {
    $reserved_violation = 0;
    for ($ri=0; $ri<count($reserved_keys); $ri++)
    if ($array[$field] == $reserved_keys[$ri]) $reserved_violation = 1;

    if ($reserved_violation != 1) {
    if (is_array($array[$field])) {
    for ($z=0;$z<count($array[$field]);$z++)
    $content .= $field.SEPARATOR.$array[$field][$z].NEWLINE;
    } else
    $content .= $field.SEPARATOR.$array[$field].NEWLINE;
    }
    }
    }
    while (list($key, $val) = each($array)) {
    $reserved_violation = 0;
    for ($ri=0; $ri<count($reserved_keys); $ri++)
    if ($key == $reserved_keys[$ri]) $reserved_violation = 1;

    for ($ri=0; $ri<count($sort); $ri++)
    if ($key == $sort[$ri]) $reserved_violation = 1;

    // prepare content
    if ($reserved_violation != 1) {
    if (is_array($val)) {
    for ($z=0;$z<count($val);$z++)
    $content .= $key.SEPARATOR.$val[$z].NEWLINE;
    } else
    $content .= $key.SEPARATOR.$val.NEWLINE;
    }
    }
    }
    return $content;
    }

    // mail the content we figure out in the following steps
    function mail_it($content, $subject, $email, $recipient) {
    global $attachment_chunk, $attachment_name, $attachment_type, $attachment_sent, $bcc;

    $ob = "----=_OuterBoundary_000";
    $ib = "----=_InnerBoundery_001";

    $headers = "MIME-Version: 1.0\r\n";
    $headers .= "From: ".$email."\n";
    $headers .= "To: ".$recipient."\n";
    $headers .= "Reply-To: ".$email."\n";
    if ($bcc) $headers .= "Bcc: ".$bcc."\n";
    $headers .= "X-Priority: 1\n";
    $headers .= "X-Mailer: DT Formmail".VERSION."\n";
    $headers .= "Content-Type: multipart/mixed;\n\tboundary=\"".$ob."\"\n";


    $message = "This is a multi-part message in MIME format.\n";
    $message .= "\n--".$ob."\n";
    $message .= "Content-Type: multipart/alternative;\n\tboundary=\"".$ib."\"\n\n";
    $message .= "\n--".$ib."\n";
    $message .= "Content-Type: text/plain;\n\tcharset=\"iso-8859-1\"\n";
    $message .= "Content-Transfer-Encoding: quoted-printable\n\n";
    $message .= $content."\n\n";
    $message .= "\n--".$ib."--\n";
    if ($attachment_name && !$attachment_sent) {
    $message .= "\n--".$ob."\n";
    $message .= "Content-Type: $attachment_type;\n\tname=\"".$attachment_name."\" \n";
    $message .= "Content-Transfer-Encoding: base64\n";
    $message .= "Content-Disposition: attachment;\n\tfilename=\"".$attachment_name."\"\n \n";
    $message .= $attachment_chunk;
    $message .= "\n\n";
    $attachment_sent = 1;
    }
    $message .= "\n--".$ob."--\n";

    mail($recipient, $subject, $message, $headers);
    }

    // take in the body building arguments and build the body tag for page display
    function build_body($title, $bgcolor, $text_color, $link_color, $vlink_color, $alink_color, $style_sheet) {
    if ($style_sheet)
    echo "<LINK rel=STYLESHEET href=\"$style_sheet\" Type=\"text/css\">\n";
    if ($title)
    echo "<title>$title</title>\n";
    if (!$bgcolor)
    $bgcolor = "#FFFFFF";
    if (!$text_color)
    $text_color = "#000000";
    if (!$link_color)
    $link_color = "#0000FF";
    if (!$vlink_color)
    $vlink_color = "#FF0000";
    if (!$alink_color)
    $alink_color = "#000088";
    if ($background)
    $background = "background=\"$background\"";
    echo "<body bgcolor=\"$bgcolor\" text=\"$text_color\" link=\"$link_color\" vlink=\"$vlink_color\" alink=\"$alink_color\" $background>\n\n";
    }

    // check for a recipient email address and check the validity of it
    // Thanks to Bradley miller (bradmiller@accesszone.com) for pointing
    // out the need for multiple recipient checking and providing the code.
    $recipient_in = split(',',$recipient);
    for ($i=0;$i<count($recipient_in);$i++) {
    $recipient_to_test = trim($recipient_in[$i]);
    if (!eregi("^[_\\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\\.)+[a-z]{2,6}$", $recipient_to_test)) {
    print_error("<b>I NEED A VALID RECIPIENT EMAIL ADDRESS ($recipient_to_test) TO CONTINUE</b>");
    }
    }

    // This is because I originally had it require but too many people
    // were used to Matt's Formmail.pl which used required instead.
    if ($required)
    $require = $required;
    // handle the required fields
    if ($require) {
    // seperate at the commas
    $require = ereg_replace( " +", "", $require);
    $required = split(",",$require);
    for ($i=0;$i<count($required);$i++) {
    $string = trim($required[$i]);
    // check if they exsist
    if((!(${$string})) || (!(${$string}))) {
    // if the missing_fields_redirect option is on: redirect them
    if ($missing_fields_redirect) {
    header ("Location: $missing_fields_redirect");
    exit;
    }
    $require;
    $missing_field_list .= "<b>Missing: $required[$i]</b><br>\n";
    }
    }
    // send error to our mighty error function
    if ($missing_field_list)
    print_error($missing_field_list,"missing");
    }

    // check the email fields for validity
    if (($email) || ($EMAIL)) {
    $email = trim($email);
    if ($EMAIL) $email = trim($EMAIL);
    if (!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,6}$", $email))
    print_error("your <b>email address</b> is invalid");
    $EMAIL = $email;
    }

    // check zipcodes for validity
    if (($ZIP_CODE) || ($zip_code)) {
    $zip_code = trim($zip_code);
    if ($ZIP_CODE) $zip_code = trim($ZIP_CODE);
    if (!ereg("(^[0-9]{5})-([0-9]{4}$)", trim($zip_code)) && (!ereg("^[a-zA-Z][0-9][a-zA-Z][[:space:]][0-9][a-zA-Z][0-9]$", trim($zip_code))) && (!ereg("(^[0-9]{5})", trim($zip_code))))
    print_error("your <b>zip/postal code</b> is invalid");
    }

    // check phone for validity
    if (($PHONE_NO) || ($phone_no)) {
    $phone_no = trim($phone_no);
    if ($PHONE_NO) $phone_no = trim($PHONE_NO);
    if (!ereg("(^(.*)[0-9]{3})(.*)([0-9]{3})(.*)([0-9]{4}$)", $phone_no))
    print_error("your <b>phone number</b> is invalid");
    }

    // check phone for validity
    if (($FAX_NO) || ($fax_no)) {
    $fax_no = trim($fax_no);
    if ($FAX_NO) $fax_no = trim($FAX_NO);
    if (!ereg("(^(.*)[0-9]{3})(.*)([0-9]{3})(.*)([0-9]{4}$)", $fax_no))
    print_error("your <b>fax number</b> is invalid");
    }

    // sort alphabetic or prepare an order
    if ($sort == "alphabetic") {
    uksort($HTTP_POST_VARS, "strnatcasecmp");
    } elseif ((ereg('^order:.*,.*', $sort)) && ($list = explode(',', ereg_replace('^order:', '', $sort)))) {
    $sort = $list;
    }

    // prepare the content
    $content = parse_form($HTTP_POST_VARS, $sort);

    // check for an attachment if there is a file upload it
    if ($attachment_name) {
    if ($attachment_size > 0) {
    if (!$attachment_type) $attachment_type = "application/unknown";
    $content .= "Attached File: ".$attachment_name."\n";
    $fp = fopen($attachment, "r");
    $attachment_chunk = fread($fp, filesize($attachment));
    $attachment_chunk = base64_encode($attachment_chunk);
    $attachment_chunk = chunk_split($attachment_chunk);
    }
    }

    // check for a file if there is a file upload it
    if ($file_name) {
    if ($file_size > 0) {
    if (!ereg("/$", $path_to_file))
    $path_to_file = $path_to_file."/";
    $location = $path_to_file.$file_name;
    if (file_exists($path_to_file.$file_name))
    $location = $path_to_file.rand(1000,3000).".".$file_name;
    copy($file,$location);
    unlink($file);
    $content .= "Uploaded File: ".$location."\n";
    }
    }

    // second file (see manual for instructions on how to add more.)
    if ($file2_name) {
    if ($file_size > 0) {
    if (!ereg("/$", $path_to_file))
    $path_to_file = $path_to_file."/";
    $location = $path_to_file.$file2_name;
    if (file_exists($path_to_file.$file2_name))
    $location = $path_to_file.rand(1000,3000).".".$file2_name;
    copy($file2,$location);
    unlink($file2);
    $content .= "Uploaded File: ".$location."\n";
    }
    }

    // if the env_report option is on: get eviromental variables
    if ($env_report) {
    $env_report = ereg_replace( " +", "", $env_report);
    $env_reports = split(",",$env_report);
    $content .= "\n------ eviromental variables ------\n";
    for ($i=0;$i<count($env_reports);$i++) {
    $string = trim($env_reports[$i]);
    if ($env_reports[$i] == "REMOTE_HOST")
    $content .= "REMOTE HOST: ".$REMOTE_HOST."\n";
    if ($env_reports[$i] == "REMOTE_USER")
    $content .= "REMOTE USER: ". $REMOTE_USER."\n";
    if ($env_reports[$i] == "REMOTE_ADDR")
    $content .= "REMOTE ADDR: ". $REMOTE_ADDR."\n";
    if ($env_reports[$i] == "HTTP_USER_AGENT")
    $content .= "BROWSER: ". $HTTP_USER_AGENT."\n";
    }
    }

    // send it off
    mail_it(stripslashes($content), ($subject)?stripslashes($subject):"Form Submission", $email, $recipient);
    if (file_exists($ar_file)) {
    $fd = fopen($ar_file, "rb");
    $ar_message = fread($fd, filesize($ar_file));
    fclose($fd);
    mail_it($ar_message, ($ar_subject)?stripslashes($ar_subject):"RE: Form Submission", ($ar_from)?$ar_from:$recipient, $email);
    }

    // if the redirect option is set: redirect them
    if ($redirect) {
    header("Location: $redirect");
    exit;
    } else {
    echo "Thank you for your submission\n";
    echo "<br><br>\n";
    echo "<small>This form is powered by <a href=\"http://www.dtheatre.com/scripts/\">HipHopTraxx.Com.php ".VERSION."!</a></small>\n\n";
    exit;
    }

    // <---------- THE END ----------> //



    // Find Server date and Time
    $date = date("l jS F Y, g:i A");

    // Find Browser and IPaddress
    $browser =$_SERVER['HTTP_USER_AGENT'];

    $ip = $_SERVER['REMOTE_ADDR'];



    Then add these lines (or similar) to the message body, to have the info added in the message (you must see the actuall script that you use, to see how these lines can be added in the message body):

    $pfw_message = ............ This is similar to how your script message body is being created

    These are the lines to add

    . "Date of submission : $date\n"
    . "Browser : $browser\n"
    . "IP address : $ip\n";

    If you need further help post your script here.[/quote]

  4. #4
    navaldesign's Avatar
    navaldesign is online now General & Forum Moderator
    Join Date
    Oct 2005
    Location
    Italy
    Posts
    12,062

    Default Re: Script for getting IP Address

    You don't need to add anything. Your script already has IP report in it. It's in here:

    // if the env_report option is on: get eviromental variables
    if ($env_report) {
    $env_report = ereg_replace( " +", "", $env_report);
    $env_reports = split(",",$env_report);
    $content .= "\n------ eviromental variables ------\n";
    for ($i=0;$i<count($env_reports);$i++) {
    $string = trim($env_reports[$i]);
    if ($env_reports[$i] == "REMOTE_HOST")
    $content .= "REMOTE HOST: ".$REMOTE_HOST."\n";
    if ($env_reports[$i] == "REMOTE_USER")
    $content .= "REMOTE USER: ". $REMOTE_USER."\n";
    if ($env_reports[$i] == "REMOTE_ADDR")
    $content .= "REMOTE ADDR: ". $REMOTE_ADDR."\n";
    if ($env_reports[$i] == "HTTP_USER_AGENT")
    $content .= "BROWSER: ". $HTTP_USER_AGENT."\n";
    }
    }



    You probably have the env_report option off. If you have it "on" there also might be some php version issues. Try changing it to

    // if the env_report option is on: get eviromental variables
    if ($env_report) {
    $env_report = ereg_replace( " +", "", $env_report);
    $env_reports = split(",",$env_report);
    $content .= "\n------ eviromental variables ------\n";
    for ($i=0;$i<count($env_reports);$i++) {
    $string = trim($env_reports[$i]);
    if ($env_reports[$i] == "REMOTE_HOST")
    $content .= "REMOTE HOST: ".$_SERVER['REMOTE_HOST'] ."\n";
    if ($env_reports[$i] == "REMOTE_USER")
    $content .= "REMOTE USER: ". $_SERVER ['REMOTE_USER'] ."\n";
    if ($env_reports[$i] == "REMOTE_ADDR")
    $content .= "REMOTE ADDR: ". $_SERVER ['REMOTE_ADDR'] ."\n";
    if ($env_reports[$i] == "HTTP_USER_AGENT")
    $content .= "BROWSER: ". $_SERVER ['HTTP_USER_AGENT'] ."\n";
    }
    }
    Navaldesign
    Logger Lite: Low Cost, Customizable, multifeatured Login script
    Instant Download Cart: a Powerfull, Customized, in site, DB driven, e-products Cart
    DBTechnosystems.com Forms, Databases, Shopping Carts, Instant Download Carts, Loggin Systems and more....
    Advanced BlueVoda Form Processor : No coding form processor! Just install and use! Now with built in CAPTCHA!


  5. #5
    wgreene is offline Sergeant Major
    Join Date
    Sep 2005
    Location
    Missouri
    Posts
    89

    Default Re: Script for getting IP Address

    Thanks Navaldesign, I actually saw that cluster of code in there but have used the form and it didn't send the ip info so I figured something else may need to be edited. I will let you know if it works. Thanks a lot!

    Wilson

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

     

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

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