Closed

convert simple perl tools to compilable c code for linux systems

This project was awarded to damirmarkovic for $60 USD.

Get free quotes for a project like this
Employer working
Project Budget
$30 - $250 USD
Total Bids
7
Project Description

small and simple perl tool need to be migrated to executables binaries, 'make'able c++ code should do it, mainly to be run on linux type OS...

perl version attached

perl piece:

----------------------------------------------------------------------

#!/usr/bin/perl

use strict;

use Socket;

my $me = $0;

my $input = $ARGV[0];

if ($me =~ /ip2int/) {

my $ipnumber = ip2num( "$input" );

if ( $ipnumber ) {

print "$ipnumber\n";

}

} elsif ($me =~ /int2ip/) {

my $ip = num2ip( $input );

if ( $ip ) {

print "$ip\n";

}

} elsif ($me =~ /mac2int/) {

my $num = mac2num( "$input" );

if ( $num ) {

print "$num\n";

}

} elsif ($me =~ /int2mac/) {

my $mac = num2mac( "$input" );

if ( $mac ) {

print "$mac\n";

}

}

sub ip2num {

return unpack 'N', inet_aton(shift);

}

sub num2ip {

return inet_ntoa( pack 'N', shift );

}

sub mac2num {

my $mac_hex = shift;

$mac_hex =~ s/://g;

$mac_hex = substr(('0'x12).$mac_hex, -12);

my @mac_bytes = unpack("A2"x6, $mac_hex);

my $mac_num = 0;

foreach (@mac_bytes) {

$mac_num = $mac_num * (2**8) + hex($_);

}

return $mac_num;

}

sub num2mac {

my $mac_num = shift;

my @mac_bytes;

for (1..6) {

unshift(@mac_bytes, sprintf("%02x", $mac_num % (2**8)));

$mac_num = int($mac_num / (2**8));

}

return join(':', @mac_bytes);

}

----------------------------------------------------------------------

Awarded to:
Skills Required

Looking to make some money?

  • Set your budget and the timeframe
  • Outline your proposal
  • Get paid for your work

Hire Freelancers who also bid on this project

    • Forbes
    • The New York Times
    • Time
    • Wall Street Journal
    • Times Online